我在js中模拟1000个ajax并发请求出现net::ERR_INSUFFICIENT_RESOURCE
这个错误怎么解决?
网友回复
<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>
还有一种解释,这是由于浏览器的约束导致的,浏览器ajax请求的约束为25M,一旦达到约束,后续请求将失败并显示 net::ERR_INSUFFICIENT_RESOURCES。
这个“25 MB”表示ajax请求请求在浏览器中消耗的字节数。