首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AJAX查询在50+时间工作,然后使javascript崩溃

问AJAX查询在50+时间工作,然后使javascript崩溃
EN

Stack Overflow用户
提问于 2013-10-26 01:15:05
回答 1查看 124关注 0票数 0

我有一些javascript,可以连续运行50+几次,然后使浏览器崩溃。我在运行php脚本返回json数据的函数中有2个ajax调用。错误处理程序代码表明,返回未捕获错误的是内部(第二个) ajax调用。然后我收到一条408HTTP警告消息,告诉我“服务器超时等待来自客户端的TImeout请求。任何帮助都将不胜感激。以下是代码:

代码语言:javascript
复制
function doTask(btnID)
{
    var data =
    {      
        "action": "test"    
    };
    data = $(this).serialize() + "&" + $.param(data);
    $.ajax(
    {
        type: "POST",
        dataType: "json",
        url: "doTask.php",
        data: data,
        success: function(data) 
        {
            var result = data['Result'];
            document.getElementById('Result').value=result;
            // Update result
            var balance = result;
            document.getElementById('txtAcctBalance').value = balance.toFixed(8);
            var post_data = { amount: balance};
            $.ajax({
                type: "POST",
                dataType: "json",
                url: "updateAcctBalance.php",
                data: post_data,
                async: false,
                error: function(jqXHR, exception) 
                {
                    if (jqXHR.status === 0) {
                        alert('Not connect.\n Verify Network.');            
                    } 
                    else if (jqXHR.status == 404) 
                    {
                        alert('Requested page not found. [404]');
                    }
                    else if (jqXHR.status == 500)
                    {
                        alert('Internal Server Error [500].');
                    }
                    else if (exception === 'parsererror') 
                    {
                        alert('Requested JSON parse failed.');
                    }
                    else if (exception === 'timeout')
                    {
                        alert('Time out error.');
                    } 
                    else if (exception === 'abort')
                    {
                        alert('Ajax request aborted.');
                    }
                    else
                    {
                        alert('Uncaught Error.\n' + jqXHR.responseText);            
                    }    
                }
            });
        },
        error: function(jqXHR, exception) 
        {
            if (jqXHR.status === 0) {
                alert('Not connect.\n Verify Network.');            
            } 
            else if (jqXHR.status == 404) 
            {
                alert('Requested page not found. [404]');
            }
            else if (jqXHR.status == 500)
            {
                alert('Internal Server Error [500].');
            }
            else if (exception === 'parsererror') 
            {
                alert('Requested JSON parse failed.');
            }
            else if (exception === 'timeout')
            {
                alert('Time out error.');
            } 
            else if (exception === 'abort')
            {
                alert('Ajax request aborted.');
            }
            else
            {
                alert('Uncaught Error.\n' + jqXHR.responseText);            
            }
        }
    });
    return false;  
}
EN

回答 1

Stack Overflow用户

发布于 2013-11-20 18:39:58

我建议在ajax php脚本中始终使用Try Catch方法,并将错误数据发送回js,因为这将是正常执行。不要使用太多的数据库连接,因为连接的数量是有限的!您应该使用临时文件将来自js的所有临时数据存储为一个队列(带有时间戳),并且应该在php中使用一个收集器脚本,该脚本读取最新的队列文件,如果它们包含的记录超过XX个或其他任何记录,则评估它们,并立即将所有排队的数据保存到数据库中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19595801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档