0

dbから取得したさまざまな情報ブロックを含むページがあります。これらのブロックはセクションに配置されており、現在、そのコードはすべて長いPHPページを使用しているため、ページを読み込むたびに、その表示に遅延が生じます。ページをより速くロードし、コンテンツがロードされるセクションにある種の「ロード中...」または画像プレースホルダーを配置できるようにしたいと思います。他のサイトでも頻繁に行われているようです。どうすればそれを達成できますか?長いPHPページを次のように分割する必要がありますか?

  1. メインレイアウトページ

  2. dbからのデータを含む各ブロックを別のページに配置し、

  3. インクルードを使用してメインページに挿入します。

コンテンツの生成中に「読み込み」を配置するにはどうすればよいですか?

プロセスをよりよく理解しようとしているだけです。私もjQueryを使用しています。おそらくこれを助けることができるプラグインがありますか?

ありがとう。

4

3 に答える 3

2

メインレイアウトページには、ページが最初に読み込まれたときに表示したい要素のみを含めます。サーバーから取得するコンテンツが必要な場所で、JavaScriptを介してアクセスできるIDを持つプレースホルダー要素が必要です。

jQueryのajax関数を使用して、別のリクエストからサーバーにコンテンツをロードします。

$.ajax({
    url: '/path/to/script.php',
    data: 'any=get&variables=you&would=like&to=set', // can also be passed as an object
    success: function( html ) {
        // The argument passed to the success function is ALL of the output 
        // of your 'script.php'
        $('#containerid').html( html );

    }
});

バックエンドPHPスクリプトで、echo表示したいコンテンツを単純に出力します。オプションで、コンテンツをJSONオブジェクトとして返すことができます。これは、より推奨される方法ですが、クライアント側でより多くの処理が必要です(オブジェクトは、アクセスする前に最初に解析する必要があります。詳細については、PHPのjson_encode関数とJSON.orgを参照してください。 JSONで)。

このように構成されているため、入力するコンテナーごとに1つのajaxリクエストを作成するのが最も理にかなっています。

jQueryのajax関数のリファレンスページもチェックしてください

于 2012-05-10T14:10:04.907 に答える
1

jQuery を使用しているので、明らかな方法は、PHP スクリプトにスケルトン ページを作成させてから、JavaScript 関数 (Ajax) を使用してページのさまざまなセクションをロードすることです。毎回。

于 2012-05-10T14:06:05.377 に答える
1

ページ レイアウトを含む 1 つの php ファイルを作成できます。このファイル内では、AJAX を使用してすべてのブロックからデータをロードします。jQuery を使用して AJAX 呼び出しを行うことができます。

ajax 呼び出しを実行すると、「Loading...」というアニメーション GIF を入れることができます。Google で「loading gif」を検索すると、たくさんのアニメーション GIF が表示されます。

それが役に立てば幸い。

于 2012-05-10T14:07:42.787 に答える