1

ASP.NET、MVC 3、C#Webサイトの場合、他のページへのリンクがあるホームページがあります-

ホームページがリクエストされてブラウザにロードされた後、リンクされたページを「プリロード」して、サーバーに戻らずにすぐにレンダリングできるようにする方法はありますか?

例-私が10個の製品を販売していたとしましょう。各製品には、ホームページからリンクされた独自の「製品詳細」ページがあります。誰かがホームページにアクセスしたときに、バックグラウンドで1つ以上の「製品の詳細」ページを「プリロード」したいので、「製品の詳細」リンクをクリックすると、そのページがすぐに利用可能になります。

4

2 に答える 2

1

あなたがここで何を望んでいるのか、それはちょっと奇妙です。これらのページはいつでも AJAX を介してロードし、適切なハイパーリンクのクリックを処理して、DOM 全体を既存のものに置き換えることができますが、労力とメンテナンスの価値はありますか? ここでPJAXが役立つのではないでしょうか?

于 2012-11-15T14:48:31.653 に答える
0

なんらかの並列読み込みを実際に行いたい場合は、実際にはページに表示されないが、有効なコンテンツを保持する要素を持つことができます。何かのようなもの:

<div id="parallel_load" style="position:absolute;left: -1000px;width: 100px;></div>

次に、取得したいもののキューを作成できます。プリロードするのは画像だけなので、サービスから一度に 1 つの画像を要求し、新しい要素を作成してこの div に挿入するリストを作成するだけで済みます。これにより、ユーザーが他のことをしている間、ブラウザーは新しい画像をバックグラウンドでロードするように強制されます...クリック、ログイン.

$(LoadNextImage(0));

function LoadNextImage(index)
{
    // do ajax call here to get the url to the image and id
    // use index to keep track of what images have loaded maybe

    var image = $('<img id="' + id + '"');
    image.attr('src', urlFromAjax);
    image.appendTo('#parallel_load');

    // moreImages would be some response from the server that
    // says you're not done yet possibly
    if (moreImages) 
        setTimeout(LoadNextImage, 500);
}
于 2012-11-15T15:30:02.350 に答える