2011-08-17 11 views
1

私のアプリケーションはdjangoフレームワークとjQueryを使用して開発しました。しばらくの間、アプリケーションを実行した後は、常に応答しないか、「Aw、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); 
    }); 
}); 

、同じことを行うが、このようなイベントを応答していないにつながらない任意の他のコードがあります。またはこれを改善する方法はありますか?

他の問題があると思われる場合は、私にお勧めします。ありがとうございました。

+0

ループごとに要素を検索しないようにjQueryオブジェクトを保存する必要があります。 –

+0

@Digital Planeアプリケーションは常に変化しているので、これらの値をすべて監視する必要があります。 – Protocole

+0

あなたのページのサイズは?値をjavascriptに直接渡してみましたか? – Sukumar

答えて

-1

別々のスレッドを使ってみましたか?

EDIT: あなたが探しているものを知っていれば:http://www.websiteoptimization.com/speed/10/ 非常に良い

+0

Javascriptでは、「スレッド」とはどういう意味ですか? –

+0

これは有望そうです:http://blog.monstuff.com/archives/000315.htmlスレッドを使用してC#で無反応の画面を正常に削除しました。JavaScriptと似ているといいですね。 – Vlad

+0

残念ながら、そうではありません。スレッドは、ほとんどのブラウザではサポートされていません。あなたが投稿したリンクはfirefoxでのみ動作し、Webワーカー(スレッドのようなもの)はブラウザ間での互換性がありません。 –

0

... loadMap機能でのsetTimeoutを置くために...すべての作業が終了した後に試してみて、$(document).ready機能を使用します

$(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; 
}); 
+0

実際に私は '$(document).ready'関数も使用しましたが、私はちょうど私の質問に関連する行しか入れませんでしたので、申し訳ありません。とにかくあなたのソリューションを試した後、それはいくつかのコンテンツを点滅させるように見えるし、それを速くしません。 – Protocole

関連する問題