+
80
-

我在js中模拟1000个ajax并发请求出现net::ERR_INSUFFICIENT_RESOURCE

我在js中模拟1000个ajax并发请求出现net::ERR_INSUFFICIENT_RESOURCE

这个错误怎么解决?

网友回复

+
0
-

浏览器会限制同一个域名的ajax 并发请求数量,一般并发请求超过30个就会出现这个错误。

+
0
-
<script>
// AJAX call 1
function call_1() {
	return new Promise(function(resolve, reject) {
		let xhttp = new XMLHttpRequest();
		xhttp.onreadystatechange = function() {
			if(this.readyState == 4) {
				if(this.status == 200)
					resolve(this.responseText);
				else
					reject('Call 1 Failed');
			}
		};
		xhttp.open("GET", "ajax-1.php");
		xhttp.send();
	});
}

// AJAX call 2
function call_2() {
	return new Promise(function(resolve, reject) {
		let xhttp = new XMLHttpRequest();
		xhttp.onreadystatechange = function() {
			if(this.readyState == 4) {
				if(this.status == 200)
					resolve(this.responseText);
				else
					reject('Call 2 Failed');
			}
		};
		xhttp.open("GET", "ajax2-2.php");
		xhttp.send();
	});
}

Promise.all([ call_1(), call_2() ]).then(function(values) {
    // all AJAX requests are successfully finished
    // "values" is array containing AJAX responses of all requests
    console.log(values);
}).catch(function(reason) {
    // one of the AJAX calls failed
    console.log(reason);
});
</script>

+
0
-

还有一种解释,这是由于浏览器的约束导致的,浏览器ajax请求的约束为25M,一旦达到约束,后续请求将失败并显示 net::ERR_INSUFFICIENT_RESOURCES。

这个“25 MB”表示ajax请求请求在浏览器中消耗的字节数。
我知道答案,我要回答