Ajax 调用挂起在 jQuery 中
ajax call hanging in jquery
我正在尝试按顺序进行 ajax 调用,然后应用车把将它们附加到主 html 文件中。 但是我下面的代码仅在第一个请求中挂起。 当我手动尝试此 URL 时,它会返回 HTML。 但不是当我尝试通过时。我在这里犯了任何逻辑错误。
var i = 0;
var flagArray = new Array(data.length);
while (i < data.length) {
if (flagArray[i] == 'done') {
i++;
console.log(i);
}
if (flagArray[i] != 'fired') {
flagArray[i] = 'fired';
$.get('commonCore/templates/' + data[i].templateHtml, function (html) {
console.log(data[count].classSelect, i);
var filterTemplate = Handlebars.compile(html);
replaceFilterTemplate(filterTemplate, data[i].classSelect);
flagArray[i] = 'done';
});
}
}
数据是 JSON:
[
{
"templateHtml": "dcdcsFilterOptions.html",
"classSelect": "dcdcsOptions"
},
{
"templateHtml": "dashBoardLeftInsight.html",
"classSelect": "leftpanel"
},
{
"templateHtml": "advanceFilterOptions.html",
"classSelect": "advancedOptions"
},
{
"templateHtml": "reportFilterOptions.html",
"classSelect": "reportdashboard"
}
]
在 Chrome 网络中,永久显示第一个请求的待处理状态,因此一切都挂起。 但 Manuall 尝试返回数据。
如果你想发出顺序请求,试试类似
function request(array) {
if (!array || !a.length) {
return
}
var item = array.shift();
$.get('commonCore/templates/' + item.templateHtml, function (html) {
var filterTemplate = Handlebars.compile(html);
replaceFilterTemplate(filterTemplate, item.classSelect);
request(array)
});
}
request(data)
在处理整个请求数组之前,您的代码存在问题,由于 while 循环,您正在阻塞浏览器线程
由于同时会话阻塞 ajax 调用并且这些调用正在锁定会话文件,您面临会话挂起问题。
请在返回响应之前使用 session_write_close() 函数来解决问题,如此处所述。 http://php.net/manual/en/function.session-write-close.php
这也将提高同时进行 ajax 调用时的性能,如本演示 https://demo.ma.ttias.be/demo-php-blocking-sessions/所示。
以下是这方面的更多详细信息。https://ma.ttias.be/php-session-locking-prevent-sessions-blocking-in-requests/
相关文章:
- JavaScript执行暂时挂起页面
- 是定义的操作系统睡眠/挂起期间setTimeout的行为
- Chrome浏览器“;挂起”;同时在循环中执行AJAX请求
- Ajax 调用挂起在 jQuery 中
- 在jQuery中,.state()如何确定一个承诺是挂起的、已解决的还是被拒绝的
- jQuery替换挂起chrome
- jQuery.每个都会导致浏览器挂起
- 使用 Jquery 查找冒泡事件中的挂起事件或最后一个事件
- jQuery UI 模式对话框在关闭之前挂起
- Jquery 函数挂起
- JQuery从其他DropDowns中删除DropDown中的选定选项,停止工作并挂起
- jQuery Datepicker在重新单击输入字段时挂起(Chrome)
- 在PhantomJS中,为什么jQuery调用会导致脚本挂起?
- jQuery Ajax加载图像挂起
- 简单的jquery每个循环使浏览器挂起
- 我的scrollTop() jQuery方法一旦滚动就挂起浏览器
- 当使用selenium执行jquery时,网页页面挂起
- 当我重复图像 10000 次时页面挂起.需要任何替代的jQuery或JavaScript解决方案
- 如何在用户导航到其他页面时中止挂起的 jquery ajax 请求
- Jquery对话框在IE6和IE7挂起