1

ユーザーがブラウザの戻るボタンを押した場合に、別の関数への ajax 呼び出しを行うことなく、表示された Web サイトのコンテンツをキャッシュするにはどうすればよいですか?

私は私の質問にあまり意味がないと思うので、ここに詳細な情報があります: 私たちのウェブメールサーバーでは、ユーザーが受信トレイボタンをクリックするたびに、新しく受信したメールと以前に保存されたメールの件名を表示する別のページに移動します郵便物。(RetrieveNewMessages および ReadMailFolderContents)。ユーザーが大量のメールを受信または以前に保存している場合、これらの操作の処理に時間がかかる可能性があるため、ユーザーが初めて受信トレイ ページに入ったときにのみこれらの関数を実行したいと考えています。ユーザーが件名をクリックしてメールの内容を表示し、[戻る] を押して受信トレイ ページに戻ると、これらの機能が再度実行されるため、メールの表示に多くの遅延が発生します。

ページは最初に読み込み画面を読み込み、サーバーに ajax 呼び出しを行い、サーバーが 2 つの関数の処理を完了すると、文字列配列に格納されたコンテンツを表示します。

これは、現時点でどのように見えるかのスケルトンコードです。

メイン サブ

<%sub main()%>
    <div id="loading" align="center">
        <img src="mail_loading.gif" style="vertical-align:middle;"/>
        Retrieving your mails...
    </div> 
    <script language="javascript">
        window.onload = function() {
            ajaxed.callback('do', 'mail_listing', null,
            function(t) {
                $('loading').hide();
            });
        };
    </script>
    <div id="mail_listing"></div>
<%end sub>

サブ pagePart_do() (Ajax 呼び出し)

<%
Sub pagePart_do()

'Gets new mails from pop3 server
Call RetrieveNewMessages(mailbox,uniqueIDTxtFilePath)

retrievedMailContentArray = ReadMailFolderContents(mailDirName,uniqueIDTxtFilePath,flag)

...Run the for loop on retrievedMailContentArray and format it in HTML
%>

つまり、ユーザーが戻るボタンを押して受信トレイ ページに戻ったときに、pagePart_do() によって表示される html コンテンツがキャッシュされるようにしたいと考えています。

サーバーは ASP Classic で実行されており、ajaxedプラグインを使用しています。

4

1 に答える 1

1

これを解決するには、おそらく多くのオプションがあります。1 つのオプションは、HTML5 と Web Storage を使用することです。Web ストレージは現在のほぼすべてのブラウザーでサポートされており、最大 5MB のデータを保持できます。Web ブラウザは、JavaScript の localStorage オブジェクトを介して Web Storage を公開します。Web ブラウザーが Web Storage をサポートできるかどうかを判断する簡単な方法の 1 つは、次の JavaScript コードを実行することです。

var webStorageSupported = ('localStorage' in window) && window['localStorage'] !== null;

Web ストレージを設定するには:

localStorage.setItem('name', 'arman');

値を取得するには:

var value = localStorage.getItem('name'); 
于 2013-02-21T01:24:44.167 に答える