UNPKG

lightlink

Version:

Client package for lightlink.io allowing progressive loading (display the first page of data that is transmitted already while the rest AJAX request is still in loading)

85 lines (70 loc) 3.04 kB
# npm NPM client package for LightLink.io ## Exports default function ``` lightlink( [ string ] url, [ Object, optional ] params, [ Object, optional ] options ) ``` Calls lightlink.io service allowing progressive loading (intermediate callbacks on partial data loaded) ### Parameters: - `url` - The URL to call - `params` - an object containing request parameters - `options` - callbacks and progressive loading options ##### Valid `options` are : * `partial` callback on partial response. Parameters: (data, isPartial /*=true * /, xmlhttp) * `success` callback on successful response. Parameters: (data, isPartial /*=false * /, xmlhttp) * `successOrPartial` callback on successful or partial response. Parameters: (data, isPartial, xmlhttp) * `error` callback on HTTP error ou incorrect JSON response. Parameters: (data, isPartial, xmlhttp) * `exception` callback on caught server side exception: Parameters: (data, xmlhttp) * `partialSlices` The size of partial response slices. Default to :[100,100,100,100,100,500] meaning 5 times each 100 rows, then each 500 rows until loading ended. Slices should not be too small to avoid too frequent updates that might be not needed. Lower CPU usage * `partialMinInterval` The minimum interval between partial responses. Default to 200 millis. Allows to reduce client CPU by avoiding too frequent updates, and less frequent xmlhttp.responseText access ## Example ```jsx import lightlink from "lightlink"; ... lightlink("/lightlink/my/service",{firstName:"John", lastName:"Smith"},{ successOrPartial:function(data, isPartial, xmlhttp){...}, error:function(xmlhttp){ if (xmlhttp.status!=200) console.log("HTTP Error : "+xmlhttp.status) else console.log("HTTP Error : "+xmlhttp.status) }, exception:function(data, xmlhttp){ console.log( data.error, // exception.toString() from the server side data.stackTrace // will be available in debug mode only ) } }) ``` That was a verbose (full) syntax. In real application you will probably wrap `lightlink` function for default error handling, if any. Something like this: ```jsx import lightlink from "lightlink"; ... function myLightLink(url,params,successOrPartial){ lightlink(url,params,{ error:function(xmlhttp){ if (xmlhttp.status!=200) console.log("HTTP Error : "+xmlhttp.status) else console.log("HTTP Error : "+xmlhttp.status) }, exception:function(data, xmlhttp){ console.log( data.error, // exception.toString() from the server side data.stackTrace // will be available in debug mode only ) }, successOrPartial:successOrPartial }); } ... myLightLink("/lightlink/my/service1",params1, (data, isPartial)=>{...} ); myLightLink("/lightlink/my/service2",params2, (data, isPartial)=>{...} ); ```