2.0.0 • Published 6 years ago
@galvao/jhrw v2.0.0
JHRW - JavaScript HTTP Request Wrapper
A wrapper for so-called "AJAX" Requests
Goals
I've made JHRW to:
- Advance my JavaScript skills;
- Improve/Simplify the usage of the XMLHttpRequest object by:
- Adding default values to what's undefined;
- Adding additional Error checking and clarification;
- Adding interesting, simplified, feature, such as timeouts and retries.
Documentation
Object JHRW(String base, String urlPath [, Boolean lazyExecution = false [, Boolean bypassCache = false]]);Parameters
String base- The request's base URLString urlPath- The request's endpointBoolean lazyExecution(optional) - If the request should be initialized and sent right after instantiation. Default: falseBoolean bypassCache(optional) - If the request URL should have a timed parameter added in order to bypass cache. Default: false
Throws
- A
ReferenceError- If there's no JHRWHandler function defined.
- A
Errorif the base parameter isundefinedif the urlPath parameter isundefined - A
TypeErrorif the base parameter is not aStringif the urlPath parameter is not aStringif the lazyExecution parameter is not aBooleanif the bypassCache parameter is not aBoolean
Returns
An Object containing:
Properties
Object request- The native XMLHttpRequest ObjectObject config- The configuration ObjectString URI- The request's targetBoolean asynchronous- If the request should be asynchronousString verb- The HTTP verbMixed data- Data to be sent along with the requestObject requestHeaders- HTTP headers for the requestString responseType- Expected MIME type of the responseObject handlers- The functions to handle the requestNumber attempts- # of attempts to retry if the request failsNumber attemptInterval- Interval between attempts, in seconds.Number timeout- The timeout, in seconds, for the request - after which it should be retried.Function postTimeout: The function to be executed if the request times out.Number timer- The timer that controls the retry process.
Static Properties
Array JHRW.availableHandlers: The types of handlers that can be re-defined.String JHRW.handlerList: Convenience property to be shown in error messages.
Methods
configure
void configure(Object configureObject);Overwrites one or more configuration options (see the config object above)
init
void init();Initializes the request: Sets the expected response MIME Type; Sets the handlers as listeners; Opens the request; Sets the request's headers.
send
void send();Sends the request, including data, if available.
end
void end();Ends the request. Useful if you wish for JHRW to stop retrying on success.
Basic Usage
try {
var obj = new JHRW('http://localhost', /foo.php', true);
} catch (Error e) {
// Do something
}or
try {
var req = new JHRW('http://localhost', 'foo.php');
try {
req.init();
} catch (ReferenceError e) {
// Do something
}
req.send();
} catch (Error e) {
// Do something
}For a more advanced usage example see the testing page.
Credits
- Developed by @galvao.
- Logo font: Neutra Text Bold
2.0.0
6 years ago