Ajax请求冻结网页

时间:2012-05-22 06:28:28

标签: php javascript ajax google-chrome

我正在尝试创建一种在我的网页中调用ajax请求的通用方法。我已经创建了一个很好的小扩展方法来异步调用post请求。

$.tiqPost = function(action,data,callback)
{
    alert('Posting...');
    $.fancybox.showActivity();
    $.ajaxSetup({async:true});
    $.post('/portfolios/mod/t:'+action+'/',data,function(response)
    {
        callback(response);
        $.fancybox.hideActivity();
        alert('Finished Post.');
    });
    alert('Posting Set.');
}

然而,每当此请求触发时,我的页面将无限期冻结。在某些版本的Chrome中,它会冻结而没有任何反馈(点击停止工作,我无法关闭标签)。大多数其他浏览器,它显示“发布”,然后停止,没有达到“发布集”或“完成发布”。

因此,Chrome不会出现任何错误,只会冻结。这对我来说非常令人费解。任何人都有任何提示(甚至只是一个不同的实现)?

编辑:

每次请求都不会发生这种情况。实际上,让我发布一些有效的案例和一些案例。坚持......

编辑编辑:

所以在这个例子中

$.tiqPost('newcat',{t:"n"},function(response)
                {
                    if(response)
                    {
                        $tabs.tabs('add','#tiq-tab-'+response,"New Category",0);
                    }
                });

我没有问题。但是:

$(this).bind('blur',function(postdata)
    {
        //blur
        if(postdata==null)
            postdata = {value:$(this).text()};
        $.tiqPost($(this).attr('id').replace('tiq-submit-',''),
            postdata,
            function (response) {
                $(this).text(response);
            });
        $(this).removeClass('tiq-editable-editstate');
        $(this).attr('contentEditable','false');
    });

导致冻结。

1 个答案:

答案 0 :(得分:1)

正在做

$.post('/portfolios/mod/t:'+action+'/',data,function(response)
    {
        callback(response);
        alert('Finished Post.');
    });
单独工作? 如果是,那么您可能在配置功能本身时遇到问题