0

たくさんの機能を備えたサイドバーがあります。それはうまく機能しますが、ロードするのに少し時間がかかるモジュールがあります(file_get_contents()キャッシュされていますが、3つのリクエストに使用しています)。1分かかるので、サイトは1分間壊れているように見えます。

こんな感じだからだと思います

<aside class="sidebar">
    <div class="module one">Stuff</div>
    <div class="module two">Stuff</div>
    <div class="module three">Stuff</div>
    <div class="module four">Stuff</div>
    <div class="OMG I TAKE A SECOND TO LOAD">FOOBAR</div>
</aside>

最後のdivの解析でスタックしていると思われるため、実際にはまだサイドバーを閉じていません。

私の質問は、長いロードdivがロードされる前に、すべてのサイドバーをロードして閉じる「良い」(できればjavascriptless)方法があるかどうかです。

4

1 に答える 1

1

ここで「javascriptless」が問題になります。フルページをユーザーにすばやく送信し、そのページの「重い」コンポーネントの一部を非同期でロードする場合は、ajax が最適です。実際、外部依存関係があり、ユーザーのページ訪問の主要な対象ではないページのすべてのコンポーネントに対して、ある程度多産的にこれを行うことをお勧めします。

これには少し手間がかかるかもしれませんが、最新の js ライブラリは、クライアント側の面倒な作業をすべて行うことができます。これらのサイドバー div (または少なくとも非同期に読み込まれるもの) ごとに個別の URL を作成する必要があります。

あなたはよく考えています。これは良いアーキテクチャです (サイドバーでユーザーを待たせてはいけません!)。

于 2012-08-24T19:48:37.660 に答える