如何从 Ajax() 的内部 HTML 缓存 JS 文件

How to cache the JS files from innerHTML of/from Ajax()?

本文关键字:HTML 内部 缓存 JS 文件 Ajax      更新时间:2023-09-26

是否有可能将PHP脚本回显的JS文件缓存到innerHTML或$('#id').html(data)的元素,如DIV??在脚本源(js文件)输出到类似元素后,它是否自动保存到访问者的缓存中?

可以在查看页面源代码中看到的脚本源属性(js文件/外部)可以保存到访问者的缓存中。但是在页面源代码中看不到的脚本源,因为它需要 AJAX 响应,例如,它不会保存到访问者的缓存中。(请稍后查看下面的代码/脚本)。

我已经以多种方式尝试了多次,更改JS文件内容,从alert()内部更改值,我基于alert(),然后刷新页面以查看警报消息将出现的内容,无论我在alert()中输入什么,它都会显示页面中的确切值,就像没有缓存保存一样。

正在使用谷歌浏览器,我找到了一个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: (页.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 的源文件之后,它将被保存到访问者的缓存中。

您可以在 ajax 调用中使用 cache 参数。默认情况下,cache 属性设置为 false,这就是您在请求中看到这些数字的原因。

例如:

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

有关缓存属性的详细信息,请参阅此处。