2017-03-12 9 views
0

Internet Explorer 11でコードが長くかかる理由がわかりました。機能を呼び出すPHPページがあります。この関数は非常に長い文字列を返します。文字列は実際には400行のJavaScriptコードです。JavaScriptコードが3〜4秒間実行され、その間にブラウザが無効になる

はのは、返される文字列は次のようであると仮定してみましょう:

<script> 
    document.getElementById('pka1').innerHTML = 'gddgdgd gsdg gdsgs'; 
    document.getElementById('pka2').innerHTML = 'gg gdsgdsggg gsg'; 
    document.getElementById('pka3').innerHTML = 'fdfd ffdsf dfss ff'; 
    ... 
    document.getElementById('pka398').innerHTML = 'hfhhfd hdhfh fhdfd'; 
    document.getElementById('pka399').innerHTML = 'ggjggfgjgh h ffhfh'; 
    document.getElementById('pka400').innerHTML = 'fssfs ffsafsa eefg'; 
</script> 

、その文字列が返されたとき、私は、コードを実行するためのjQueryを使用しています。返された文字列は、dataという名前の変数に格納されます。そのInternet Explorerの後

$('#pka').html(data); 

や他のブラウザでは400行で構成され、400件のdivのHTMLコードを変更し、以前のJavaScriptコードを実行します:だから、私は、次のコマンドを実行します。

Mozilla Firefoxは非常に高速ですが、Internet Explorerはあまりにも多くの時間を費やしています。スクリプトが実行されている間、Webページは無効になっています(なぜか分かりません)。スクリプトの実行中にハイパーリンクをクリックできません。 Firefoxを使用する場合、これは0.5秒かかりますが、IEは非常に遅いです。

ブラウザがJavaScriptコードをdivから実行するときに、プロセスを高速化してページを無効にできないようにするにはどうすればいいですか?

+0

なぜ400のdivがありますか?それは必要ですか? – CaptainHere

+0

@ILikeToMoveItMoveItはい、時には400 divが必要なことがあります。通常、あまり多くはありませんが、ときどきあります。 – xms

答えて

0

スクリプトが実行されている間、Webページは無効になっています(私には分かりません)。ハイパーリンクをクリックできません。単に

それはそれはどのように動作するかだから... Javaスクリプトの実行モデルは、機能やコードブロックは、それが他を処理する前に完了するために、実行します。..

限り1が存在する場合、ユーザーとの対話意志これは多すぎる..私はプロセス

まあのスピードアップができ、あなたが400件のdiv要素について再考する必要がどのように..

をブロックすること。 また、各関数が単独で処理されるため、変更を関数に分割しようとします。それはそれをより遅くするでしょう。

DOMを操作する際にWebワーカーを使用することについては、有益であれ、可能であれ、わかりません。

関連する問題