javascript - 如何从 Ajax() 的 innerHTML 缓存 JS 文件?

标签 javascript ajax caching

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

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

我试过很多次多种方式,改JS文件内容,改alert()里面的值,我是基于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:(页面.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 调用中使用缓存参数。默认情况下,缓存属性设置为 false,这就是您在请求中看到这些数字的原因。

例如:

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

有关缓存属性的更多信息,您可以查看here .

关于javascript - 如何从 Ajax() 的 innerHTML 缓存 JS 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19691587/

相关文章:

javascript - 如何确定 Dynamics XRM javascript 是从统一接口(interface) (UCI) 还是旧 Web 客户端调用?

javascript - Meteor - 将数据从一个集合移动到另一个集合

php - 像 wordpress 缩略图一样在 div 上居中图像

android - 如何同时播放/流式传输视频并将其保存到应用程序缓存?

caching - Grails 不会加载在静态资源中所做的更改(除非重新启动)

javascript - 如何仅设置数值输入字段的边框颜色?

javascript - 无法使用空格访问 javascript 对象的属性

ruby-on-rails - rails in_place_edit : how do I pass an authenticity token?

javascript - 将 PHP 值显示到不刷新的页面

asp.net - 如何使带有 SqlDependency 的 OutputCache 依赖于每个请求的数据库中的一行?