项目作者: galvao

项目描述 :
A wrapper for so-called "AJAX" Requests
高级语言: JavaScript
项目地址: git://github.com/galvao/JHRW.git
创建时间: 2017-08-21T01:09:57Z
项目社区:https://github.com/galvao/JHRW

开源协议:Apache License 2.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

  1. Object JHRW(String base, String urlPath [, Boolean lazyExecution = false [, Boolean bypassCache = false]]);

Parameters

  • String base - The request’s base URL
  • String urlPath - The request’s endpoint
  • Boolean lazyExecution(optional) - If the request should be initialized and sent right after instantiation. Default: false
  • Boolean 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 Error
    • if the base parameter is undefined
    • if the urlPath parameter is undefined
  • A TypeError
    • if the base parameter is not a String
    • if the urlPath parameter is not a String
    • if the lazyExecution parameter is not a Boolean
    • if the bypassCache parameter is not a Boolean

Returns

An Object containing:

Properties

  • Object request - The native XMLHttpRequest Object
  • Object config - The configuration Object
    • String URI - The request’s target
    • Boolean asynchronous - If the request should be asynchronous
    • String verb - The HTTP verb
    • Mixed data - Data to be sent along with the request
    • Object requestHeaders - HTTP headers for the request
    • String responseType - Expected MIME type of the response
    • Object handlers - The functions to handle the request
    • Number attempts - # of attempts to retry if the request fails
    • Number 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
  1. void configure(Object configureObject);

Overwrites one or more configuration options (see the config object above)

init
  1. 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
  1. void send();

Sends the request, including data, if available.

end
  1. void end();

Ends the request. Useful if you wish for JHRW to stop retrying on success.

Basic Usage

  1. try {
  2. var obj = new JHRW('http://localhost', /foo.php', true);
  3. } catch (Error e) {
  4. // Do something
  5. }

or

  1. try {
  2. var req = new JHRW('http://localhost', 'foo.php');
  3. try {
  4. req.init();
  5. } catch (ReferenceError e) {
  6. // Do something
  7. }
  8. req.send();
  9. } catch (Error e) {
  10. // Do something
  11. }

For a more advanced usage example see the testing page.

Credits