0

他のWebサイトからデータをフェッチするため、ロードに約1分20秒かかるPHPスクリプトがあります。ただし、ページが読み込まれていることをユーザーに示す方法が必要です。「このページは読み込まれています。画像を読み込む.gifで最大2分かかる場合があります」のようなものです。

私はjqueryを試しました:

    <html>
    <head>
        <script src="http://code.jquery.com/jquery-latest.js"></script>
    </head>

    <body>
    <script>
      // Put an animated GIF image insight of content
      $("#content").empty().html('<img src="http://www.website.com/images/loading.gif" />');

      // Make AJAX call
      $("#content").load("http://website.com/page.php")
      </script>

<div id="content">
Content to load here!
</div>

    </body>
    </html>

しかし、ページは空白です(私が何か間違ったものを実装しているかどうかはわかりません)。

他にそうする方法はありますか?

他の質問を調べましたが、必要なものに一致するものが見つからず、仕事に取り掛かることができます。

ありがとう、

ジャック。

4

4 に答える 4

4

スクリプトの読み込みが完了するまで、サーバーからの応答はありません。そのため、読み込み部分を示す別のページをページに「追加」する必要があります。そのページは、たとえばAJAX呼び出しを介して、実行するスクリプトを呼び出す必要があります。

于 2013-01-03T16:40:27.610 に答える
4

beforeSendおよびsuccessイベントでAJAX呼び出しを使用できます。

$.ajax({
   url: "http://website.com/page.php", type: "POST",
   beforeSend: function() {
      $("#content").html('<img src="images/loading.gif" />');
   },
   success: function(data) {
      $("#content").html(data);
   }
})
于 2013-01-03T16:43:00.777 に答える
2

scriptタグが間違っています。script呼び出しを閉じてsrc、実際のコード用に新しい呼び出しを開く必要があります

また、 JQueryを使用してオブジェクトをフェッチする前に、DOMをロードする必要があります。$(document).ready()スクリプトは、DOM要素の後に使用または配置できます。

于 2013-01-03T16:46:49.147 に答える
0

jqueryはファイルのどこにロードされていますか?一番上にロードされている場合は、domがロードされるのを待ってからJSを実行する必要があります。

http://api.jquery.com/ready/

于 2013-01-03T16:42:38.827 に答える