1

PHPスクリプトでechoしたJSファイルを、DIVなどの要素のinnerHTMLや$('#id').html(data)にキャッシュする可能性はありますか?? スクリプトソース(jsファイル)をエレメントのような要素に出力した後、自動的に訪問者のキャッシュに保存するのですか??

ビューページソースで見られるスクリプトソース属性(jsファイル/外部)は、訪問者のキャッシュに保存できます。しかし、ページソースで見ることができないスクリプトソースは、AJAX応答が必要なため、保存されません。訪問者のキャッシュに。(後で私のコード/スクリプトを参照してください)。

JSファイルの内容を変更し、alert()内の値を変更し、alert()に基づいて、ページを更新して、何を入力しても、アラートメッセージが表示されることを確認するなど、複数の方法で何度も試しましたalert() を使用すると、キャッシュ保存がないように、ページに正確な値が表示されます..

私は Google Chrome ブラウザを使用しています。ChromeCacheViewer を見つけましたhttp://my_host.com/SendCoins.js?_=13digits_here。数字が異なるものがあることがわかります。同じをクリックするたびに<a onclick="FUNCTION(showpage)">、キャッシュ履歴に別のキャッシュ ファイルが追加されhttp://my_host.com/SendCoins.js?_=another13digitsます。キャッシュ リストから、ファイル名は 13 桁です。画像を参照してください: http://goo.gl/NEpvR9

キャッシュは、アクセス時間を短縮するために、ドキュメントまたはデータを一時的に格納 (キャッシュ) するメカニズムです。

可能性はありますか?ある場合、どのように?

申し訳ありませんが、明確に説明できないか、理解できるように説明できませんが、説明している例を提供できます。

たとえばAJAXのように:(page.js)

 function GoToPage(Page_Post)
  var form_data = {
   Page: Page_Post
  };
  $.ajax({
   type: "POST",
   url: "PAGE.php",
   data: form_data,
   success: function(data)
   {
    $('#PAGE').html(data); // innerHTML
   }
  });
 }

AJAX: (sendcoins.js)

$(document).ready(function() {
 $("form#sendcoins").submit(function() {
  alert("Change this whenever you/visitor have used the GoToPage() and submitted the form"); //We will base on alert if it is really save to cache.
  var form_data = {
   Coins: $('#Coins').val()
  };
  $.ajax({
   type: "POST",
   url: "SendCoins.php",
   data: form_data,
   success: function(data)
   {
    $('#message').html(data); // innerHTML
   }
  });
 });
});

HTML:

<a onclick="GoToPage('SendCoins')">Send Coins</a>
<div id=PAGE></div>

PHP:

<?php
$Page = $_POST[Page];
if( $Page == 'SendCoins' ){
 ......blah.....
 echo '<script type="text/javascript" src="js/SendCoins.js"></script>';
 echo '<img src="images/coin.png">';
 echo '<form id="sendcoins" onsubmit="return false" >
  <input type=number id=Coins> <input> submit .. blah.. blah..
 </form>';
}
?>

そのため、innerHTML にエコーされたソース ファイルは、訪問者のキャッシュに保存されます。

4

1 に答える 1

2

ajax 呼び出しで cache パラメータを使用できます。デフォルトでは、キャッシュ プロパティは false に設定されているため、リクエストにこれらの数字が表示されます。

例えば:

$.ajax({
    type: "POST",
    url: "SendCoins.php",
    data: form_data,
    cache: true, 
    success: function(data)
    {
        $('#message').html(data); // innerHTML
    }
});

キャッシュ プロパティの詳細については、こちらを参照してください。

于 2013-10-30T19:10:37.327 に答える