如何处理总是不响应的应用程序

How to deal with application that always not responding?

本文关键字:不响应 应用程序 何处理 处理      更新时间:2023-09-26

我的应用是使用django框架和jQuery开发的。在运行应用程序一段时间后,它总是没有响应或"啊,Snap!"在Chrome浏览器在意想不到的时间内。

我首先想到的问题是每2秒运行javascript加载一些值。我有几个页面运行这种脚本。脚本如下:

$(document).ready(function(){
    $(window).load(function loadMap(){
        var mappos = $("#mappos").val();
        var pcode = $("#pcode").val();
        var width = $("#width").val();
        var loss = $("#loss").val();
        var lossarr = $("#lossarr").val();
        var spcode = $("#spcode").val();
        var swidth = $("#swidth").val();
        var cpcode = $('#minclamp', top.document).contents().find('#cpcode').val();
        var cwidth = $('#minclamp', top.document).contents().find('#cwidth').val();
        var lane = $('#minclamp', top.document).contents().find('#lane').val();
        var position = $('#minclamp', top.document).contents().find('#position').val();
        var atlane = $('#minclamp', top.document).contents().find('#atlane').val();
        var atposition = $('#minclamp', top.document).contents().find('#atposition').val();
        var clamping = $("#clamping").val();
        var changed = $("#changed").val();
        var realtag = $('#minclamp', top.document).contents().find('#realtag').val()
        $("#inventory").load(inventory_url+"?pcode="+pcode+"&width="+width+"&loss="+loss+"&lossarr="+lossarr+"&spcode="+spcode+"&swidth="+swidth+"&cpcode="+cpcode+"&cwidth="+cwidth+"&lane="+lane+"&position="+position+"&atlane="+atlane+"&atposition="+atposition+"&clamping="+clamping+"&changed="+changed+"&realtag="+realtag+"&mappos="+mappos);
        }
        setTimeout(loadMap, 2000);
    });
});

如果我是对的,是否有其他代码做同样的事情,但不会导致不响应这样的事件。或者有什么技巧可以改善这一点?

如果还有其他问题需要考虑,请建议我。谢谢你!

尝试在loadMap函数中设置settimeout…所有的工作都完成之后……并使用$(document)。准备好函数

$(document).ready(function ()
{
    var loadMap = function()
    {
        var mappos = $("#mappos").val();
        var pcode = $("#pcode").val();
        var width = $("#width").val();
        var loss = $("#loss").val();
        var lossarr = $("#lossarr").val();
        var spcode = $("#spcode").val();
        var swidth = $("#swidth").val();
        var cpcode = $('#minclamp', top.document).contents().find('#cpcode').val();
        var cwidth = $('#minclamp', top.document).contents().find('#cwidth').val();
        var lane = $('#minclamp', top.document).contents().find('#lane').val();
        var position = $('#minclamp', top.document).contents().find('#position').val();
        var atlane = $('#minclamp', top.document).contents().find('#atlane').val();
        var atposition = $('#minclamp',  top.document).contents().find('#atposition').val();
        var clamping = $("#clamping").val();
        var changed = $("#changed").val();
        var realtag = $('#minclamp', top.document).contents().find('#realtag').val()
        $("#inventory").load(inventory_url+"?pcode="+pcode+"&width="+width+"&loss="+loss+"&lossarr="+lossarr+"&spcode="+spcode+"&swidth="+swidth+"&cpcode="+cpcode+"&cwidth="+cwidth+"&lane="+lane+"&position="+position+"&atlane="+atlane+"&atposition="+atposition+"&clamping="+clamping+"&changed="+changed+"&realtag="+realtag+"&mappos="+mappos, function()
        {
           // set the timer here in the completeCallback of your 'load' function.
             setTimeout(function()                  
             {
                loadMap();
             }, 2000);
        }));           
    }; 
    loadMap();// call the first load map;
});

您尝试过使用单独的线程吗?

编辑:如果你知道你在找什么:http://www.websiteoptimization.com/speed/10/很好