1

私はページ、php、およびjavascriptを持っています。時々、javascript ファイルがロードされないことがありますが、私のページは正しく動作します。

5 つの JavaScript ファイル (jQuery プラグイン) が含まれています。知りたいのは:

  1. javascript ローダーを改善するにはどうすればよいですか?
  2. スクリプト ファイルが正しくロードされない場合、スクリプト ファイルを再ロードするにはどうすればよいですか?

PHPページの読み込みに10秒以上かかると、ページが壊れることを確認しました。

ありがとうございました

4

3 に答える 3

2

ヒント 1:

ページの最後に Javascript ファイルをロードします。

HTTPJavaScript は、ページがロードされた後の動的な変更にのみ使用されるため、すぐに送信する必要はありません。

動く:

    <script  type="text/javascript" src='src/jquery_1.7.min.js' ></script>
    <!-- fancybox -->
    <!--<script type="text/javascript" src="src/jquery.mousewheel.js"></script>-->
    <script type="text/javascript" src="src/jquery.fancybox.js?v=2.0.6"></script>
    <script type="text/javascript" src="helpers/jquery.fancybox-buttons.js?v=1.0.2"></script>
    <script type="text/javascript" src="helpers/jquery.fancybox-thumbs.js?v=1.0.2"></script>
    <script type="text/javascript" src="helpers/jquery.fancybox-media.js?v=1.0.0"></script>
    <script type="text/javascript">
        var _gaq = _gaq || [];
        _gaq.push(['_setAccount', 'UA-16476667-10']);
        _gaq.push(['_trackPageview']);
        (function() {
            var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
            ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
        })();

        function fireWhenReady() {
            if (typeof function1 != 'undefined') {
                function1();
            }
            else {
                setTimeout(fireWhenReady, 100);
            }
        }
        $(document).ready(fireWhenReady);
    </script>

ページの一番下へ。

ヒント 2:

さらに、次の 2 つのバージョンで Javascript コードを維持してみてください。

  1. Sandbox: モジュールにうまく分割されたコードのバージョン。
  2. Release: すべて 1 つの Javascript ファイルに配置され、YUI Compressor などを使用して縮小された、Web サイトのコードのバージョン。これにより、ファイル サイズが縮小され、それに応じて の量が減少するため、読み込み速度が向上しますHTTP requests

ヒント 3:

交換:

<script type="text/javascript" src='src/jquery_1.7.min.js' ></script>

と:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

現在、ほとんどのユーザーは jQuery の Google API バージョンをキャッシュしているため、手持ちのバージョンをロードするよりもはるかに高速にロードされます。

楽しんで頑張ってください!

于 2012-07-11T16:31:33.470 に答える
1

さて、コードはきれいに見えます。

しかし、私は $(document).ready() スクリプトを<head>css と javascript の読み込みを一緒にグループ化します。

于 2012-07-11T16:33:19.590 に答える
0

コメントを見て、あなたが抱えている可能性のある問題を推測すると、あなたのシナリオは次のようになると思います:

  1. PHP で JavaScript 変数を設定し、それを使用しています。すべてのスクリプトはこの変数に依存しているため、それをロードする必要がありますhead
  2. 遅延のために、物事が順番に実行されていません。

上記が正しければ、次のことがうまくいくと思います

  1. 先頭に JavaScript を入れて、 のように名前空間を宣言しますvar MyBook; MyBook.chapterId = <%= echo $chapter-id %>。ただし、body タグの終了前に、最後のスクリプト ファイルとして他のすべてのコードを移動します。
  2. さらに、 をロードし、そこで$(document).ready(function() {})を使用しMyBook.chapterIdます。今すぐ AJAX 呼び出しに使用するか、チャプターをロードする関数を用意して、この変数をその関数に渡すことができます。
于 2012-07-13T17:32:10.740 に答える