2012-05-10 14 views
0

私は、dbから取得したさまざまな情報ブロックを含むページを持っています。これらのブロックはセクションに整理されていますが、現在はすべてのコードが長いPHPページを使用しているため、ページをロードするたびにその表示に遅延があります。私は、ページをより高速に読み込んで、コンテンツがロードされるセクションに何らかの「読み込み中」または画像プレースホルダを配置したいと考えています。私はそれが他のサイトで頻繁に行われるのを見る。私はそれをどのように達成するのですか?私はに私の長いPHPページを分割する必要があります:別のページへのDBからのデータと、各ブロックを 結果のロード中にプレースホルダを表示

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

    2. プレイス、

    3. 使用すると、メインの中に挿入するために含まれますページ。

    コンテンツの生成中にどのように「読み込み」するのですか?

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

    ありがとうございました。

  • 答えて

    2

    ページが最初に読み込まれるときに表示したい要素だけをメインレイアウトページに含めます。 JavaScriptを使ってアクセスできるIDを持つプレースホルダ要素が必要です。この要素には、サーバーからフェッチするコンテンツが必要です。

    サーバーへの個別の要求からコンテンツをロードするために使用jQueryのAJAX機能:単にechoあなたが表示したいコンテンツのうち、あなたのバックエンドのPHPスクリプトで

    $.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); 
    
        } 
    }); 
    

    。必要に応じてコンテンツをJSONオブジェクトとして渡すことができますが、これはより好ましい方法ですが、クライアント側で処理がさらに必要になります(オブジェクトは最初に解析されなければなりません)。PHPのjson_encode関数とJSON.orgを参照してください。 )。

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

    もこれは素晴らしいですjQueryのAjaxの機能

    +0

    ためreference pageをチェックしてみて下さい!

    loading...
    というプレースホルダを作成し、イメージプレースホルダを内部に配置する必要があります。また、db駆動型コンテンツの準備ができたら、その外部プレースホルダイメージを外部PHPページのコンパイル済みHTMLに置き換えますか? – santa

    +0

    はい。AJAXリクエストが作成され、正常に返された場合は、上記の 'success'関数が呼び出され、バックエンドスクリプトが生成したすべての出力(文字列として)が渡されます。 –

    +0

    簡単な質問。私のscript.phpページに私はページング機構を持っています。私が長いPHPページを持っていたとき、私はそのページをphp-selfに提出し、pgeを再コンパイルします。結果が成功のためのajaxに含まれるようになったので、どのようにしてページングクリックが機能するのですか?私はメインページをターゲットにできますが、どうすれば私のajaxスクリプトを呼び出すことができますか?あるいは、script.phpの中に同様のJSコードを追加しますか?少し失った感じ... – santa

    1

    あなたはjQueryを使用しているので、PHPスクリプトにスケルトンページを作成させ、JavaScript関数(Ajax)を使用してページのさまざまなセクションをロードすることができます。各セクションは毎回読み込まれます。

    1

    ページレイアウトで1つのPHPファイルを構築できます。このファイルの中でAJAXを使ってすべてのブロックからデータをロードします。 jQueryを使用してAJAX呼び出しを行うことができます。

    ajax呼び出しを実行すると、いくつかのアニメーションGIF「Loading ...」を置くことができます。google "loading gif"を検索すると、たくさんあります。

    希望します。

    関連する問題