1

ウェブページを定期的に更新したいのですが、ページが利用可能な場合にのみブラウザを更新したいと思います。私がこれを使って使っている正しい新星:

<script language="javascript" type="text/javascript">
    $(document).ready(function() {
        setInterval("location.reload()", 66000);
    });   
</script>

なんらかの理由でページが利用できない場合、更新しないことは可能ですか?

4

2 に答える 2

3

ajax次のような小さなリソースのチェックを事前に使用できます。

$(document).ready(function() {
    setInterval(maybeRefresh, 66000);

    function maybeRefresh() {
        $.ajax({
            url:     "/path/to/tiny/resource",
            type:    "GET",
            success: function() {
                // That worked, do the full refresh
                location.reload();
            }
        });
    }
});

load...しかし、代わりに更新されたコンテンツを使用したほうがよいと思う傾向があります。すべてのプライマリコンテンツを、を使用して要素に配置しid "main"、次に:

$(document).ready(function() {
    setInterval(function() {
        $("#main").load("/path/to/new/content");
    }, 66000);
});

#mainこれにより、要素のコンテンツがtoから受信したGETコンテンツに置き換えられ/path/to/new/contentます。失敗したGET場合、更新はありません。

setTimeout私はおそらく、aの代わりにチェーンを使用し、setIntervalより積極的に更新しようとすることでエラーを処理します。何かのようなもの:

$(document).ready(function() {
    setTimeout(refresh, 66000);

    function refresh() {
        $.ajax({
            url: "/path/to/new/content",
            type: "GET",
            success: function(html) {
                // Success, update the content
                $("#main").html(html);

                // Reload in 66 seconds
                setTimeout(refresh, 66000);
            },
            error: function() {
                // Failed, try again in five seconds
                setTimeout(refresh, 5000);
            }
        });
    }
});
于 2013-01-15T22:32:43.957 に答える
0

HTML5キャッシュマニフェスト機能を使用することをお勧めします。htmlこれを行うには、要素のmanifest属性にマニフェストファイルのパスを指定します。

<!DOCTYPE HTML>
<html manifest="cache.manifest">

次に、すべてのWebサイトのリソースをマニフェストファイルに追加します。例:

CACHE MANIFEST
# v11
/index.html
/main/features.js
/main/settings/index.css
http://example.com/images/scene.jpg
http://example.com/images/world.jpg

これで、index.htmlに対してGETリクエストを実行すると、ブラウザはキャッシュマニフェストファイルが利用可能で変更された場合にのみ実際のリクエストを実行します(更新を強制するために、キャッシュマニフェストコメントにバージョン番号を保存できます。必要に応じて更新してください)。それ以外の場合、ページはブラウザのキャッシュから再ロードされます。

于 2013-01-15T22:36:58.427 に答える