0

ローカル ストレージを使用するアプリケーションのコンセプトをテストしており、コンテンツを格納した後にコンテンツをロードする最良の方法を知る必要があります。

基本的に、アプリはコンテンツをプリフェッチし、ローカルに保存してから、リクエストに応じて新しいページにサーバーします。ユーザーがリンク (mysite.com/article1.html) をクリックできるようにする必要があります。ブラウザーでページの HTTP 要求を行う代わりに、ローカルに保存されている HTML を読み込むだけです。

では、同じページに対して HTTP を作成する代わりに、"localNews" 値を読み込むにはどうすればよいでしょうか?

var storeUrl;
var localNews;

$('a').click(function() {
event.preventDefault();
storeUrl = $(this).attr('href');
$.ajax({
    url: storeUrl,
    cache: true,
    crossDomain: true
}).done(function(html) {
    localNews = html;
    console.log(localNews);
    localStorage.setItem('storeUrl', 'localNews');
});
});
4

2 に答える 2

0

つまり、基本的に Ajax 経由でローカル ファイルをロードしたいということでしょうか。実行できますが、Ajax 呼び出しにいくつかの小さな調整を行う必要があります。したがって、これを変更します。

$.ajax({
    url: storeUrl,
    cache: true,
    crossDomain: true

これに:

$.ajax({
    url: storeUrl,
    cache: true,
    crossDomain: true,
    async: false,
    dataType: 'html',
    contentType: 'text/html;charset=utf-8'

asyncdatatypeと に注意してくださいcontentType。これをコーディングしてからしばらく時間が経ちましたが、重要なパラメーターはありますasyncが、datatypeandcontentTypeも必要であると思います。

于 2013-01-23T16:44:28.277 に答える
0
    var storeUrl;
    var localNews;

    $('a').click(function(event) {
        event.preventDefault();
        storeUrl = $(this).attr('href');
        if (localStorage.getItem(storeUrl)) {
            //load local
        } else {
            $.ajax({
                url: storeUrl,
                cache: true,
                crossDomain: true
            }).done(function(html) {
                localNews = html;
                console.log(localNews);
                localStorage.setItem(storeUrl, localNews);
            });
        }
    });
于 2013-01-23T16:36:26.093 に答える