2

IEとjqueryの投稿で多くの投稿(問題)を読んだことがありますが、IE9(キャッシュなしのヘッダー付き)とChromeでうまく機能するため、Firefoxで機能させる方法を尋ねるとは思いませんでした。

$(document).ready(function(){
    setInterval(function(){
        $.post("dashBoardsql.php", {track : 2}, function(pendingReq){
            $("#myTable").html(pendingReq);
            }),
            "html" });
}, 27000);

私のjqueryコードは、私が言ったように、IE9とChromeで正常に機能しますが、pendingReqによって渡される更新を確認するには、FF12でページを更新する必要があります。私はFirebugを使用してPOSTデータでコンソールを監視しましたが、ページをF5するまでそのままになります。また、エラーは報告されず、キャッシュなしのヘッダーが設定されていることを再検証する必要があります。

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past

助言がありますか?また、テストはローカルマシンのWAMPで行われているため、クロスドメインの問題はありません。

解決しました!問題は構文エラーでしたが、提案された方法ではありませんでした。フィドルの@KevinBの例では、上記の元のコードから、次のようになりました。

$(document).ready(function(){
    setInterval(function(){
        $.post("dashBoardsql.php?_=" + $.now(), {track : 2}, function(pendingReq){
            $("#myTable").html(pendingReq);
            }),
            "html"
}, 27000);
});

さらに、すべてのヘッダー情報が表示されますが、すべての新しいタイムスタンプが表示され、更新が行われます。皆さん、ありがとうございました!

4

3 に答える 3

1

アンチキャッシング文字列をURLに追加してみてください。

$.post("dashBoardsql.php?_=" + $.now(), ...)
于 2012-05-07T17:34:03.893 に答える
0

あなたのコードがあなたのウェブサイトにあるものかどうかはわかりませんが、構文エラーが含まれています。

しかし、最も興味深いのは、intervaled関数では、$が認識されなくなったことです。そして、なぜ=/..なのかわかりません。

したがって、代わりにこれを使用してください:

$(document).ready(function(){
    setInterval(function(){
        jQuery.post("dashBoardsql.php", {track : 2}, function(pendingReq){
            jQuery("#myTable").html(pendingReq);
        },"html");
    }, 27000);
});

さらに、通常の場合でも、$ではなくjQuery変数を使用することをお勧めします(他のフレームワークとの将来の競合などのため)。

編集:これがあなたの問題に答えるかどうかはわかりませんが...

于 2012-05-07T17:35:51.820 に答える
0
$(document).ready(function(){
    setInterval(function(){
        $.post("dashBoardsql.php?_=" + $.now(), {track : 2}, function(pendingReq){
            $("#myTable").html(pendingReq);
            }),
            "html"
}, 27000);
});
于 2012-05-08T07:29:03.973 に答える