javascript 简单的vanilla JavaScript函数来发出AJAX请求。演示:http://jsfiddle.net/jsL14orc/9/embedded/result/
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 简单的vanilla JavaScript函数来发出AJAX请求。演示:http://jsfiddle.net/jsL14orc/9/embedded/result/相关的知识,希望对你有一定的参考价值。
/**
* Simple function to make AJAX requests.
* @param {array|string} urls
* @param {getDataCallback} each
*/
function getData(urls, each) {
/** Simple request
* @returns {Promise}
*/
if (!Array.isArray(urls)) return request(urls)
/** Array parallel requests
* @returns {Promise}
*/
if (Array.isArray(urls) && each === undefined) return Promise.all(urls.map(url => request(url)))
/** Array no-parallel requests
*/
if (Array.isArray(urls) && typeof each === 'function') {
let count = 0
function recursive() {
const url = urls[count]
request(url)
.catch(error => each(error.responseText, error.statusText, url, (count - 1)))
.then(data => {
count++
each(data, false, url, (count - 1))
if (count === urls.length) return ''
recursive()
})
}
recursive()
}
/**
* Local request function.
* @param {string} url
* @returns {Promise}
*/
function request(url) {
return new Promise((resolve, reject) => {
const request = new XMLHttpRequest
request.open('GET', url, true)
request.onreadystatechange = () => {
if (request.readyState === 4)
(request.status === 200) ?
resolve(request.responseText) :
reject(request)
}
request.send()
})
}
}
以上是关于javascript 简单的vanilla JavaScript函数来发出AJAX请求。演示:http://jsfiddle.net/jsL14orc/9/embedded/result/的主要内容,如果未能解决你的问题,请参考以下文章
vanilla javascript图像缩放滚动效果
使用 Vanilla Javascript 在表格中显示倒计时
没有 jquery 的 Django CSRF 丢失或不正确的 Ajax POST (Vanilla JavaScript)
Vanilla Javascript - 向元素 1 添加类并在单击元素 1 时从元素 2 中删除类
javascript 我的vanilla JavaScript插件的入门模板。
javascript 使用vanilla JavaScript爬上DOM树