Add timeout for XHR requests #95
@@ -392,6 +392,10 @@ Useful to debug page layout differences.
|
||||
|
||||
When set to true, clicking on a link that point the current url trigger a full page reload.
|
||||
|
||||
##### `timeout` (Integer, default to 10000)
|
||||
|
||||
The timeout in milliseconds for the XHR requests. Set to 0 to disable the timeout.
|
||||
|
||||
### Events
|
||||
|
||||
Pjax fires a number of events regardless of how its invoked.
|
||||
|
||||
1
index.js
1
index.js
@@ -158,6 +158,7 @@ Pjax.prototype = {
|
||||
trigger(document, "pjax:send", options);
|
||||
|
||||
// Do the request
|
||||
options.requestOptions.timeout = this.options.timeout
|
||||
this.doRequest(href, options.requestOptions, function(html) {
|
||||
// Fail if unable to load HTML via AJAX
|
||||
if (html === false) {
|
||||
|
||||
@@ -23,6 +23,7 @@ module.exports = function(options){
|
||||
this.options.scrollTo = (typeof this.options.scrollTo === 'undefined') ? 0 : this.options.scrollTo;
|
||||
this.options.cacheBust = (typeof this.options.cacheBust === 'undefined') ? true : this.options.cacheBust
|
||||
this.options.debug = this.options.debug || false
|
||||
this.options.timeout = this.options.timeout || 10000
|
||||
|
||||
// we can’t replace body.outerHTML or head.outerHTML
|
||||
// it create a bug where new body or new head are created in the dom
|
||||
|
||||
@@ -15,12 +15,17 @@ module.exports = function(location, options, callback) {
|
||||
}
|
||||
}
|
||||
|
||||
request.ontimeout = function() {
|
||||
callback(null, request)
|
||||
}
|
||||
|
||||
// Add a timestamp as part of the query string if cache busting is enabled
|
||||
if (this.options.cacheBust) {
|
||||
location += (!/[?&]/.test(location) ? "?" : "&") + new Date().getTime()
|
||||
}
|
||||
|
||||
request.open(requestMethod.toUpperCase(), location, true)
|
||||
request.timeout = options.timeout
|
||||
request.setRequestHeader("X-Requested-With", "XMLHttpRequest")
|
||||
request.setRequestHeader("X-PJAX", "true")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user