【发布时间】:2013-10-31 03:30:13
【问题描述】:
有没有可能将PHP脚本回显的JS文件缓存到DIV等元素的innerHTML或$('#id').html(data)?脚本源(js文件)输出到类似元素后会自动保存到访问者缓存吗??
在查看页面源码中可以看到的脚本源属性(js文件/外部)可以保存到访问者缓存中。 但是由于需要 AJAX 响应而无法在页面源中看到的脚本源,例如,它不会保存到访问者的缓存中。 (请稍后查看我的代码/脚本)。
我多次尝试过多种方式,改变JS文件内容,改变alert()里面的值,我基于alert(),然后刷新页面看看alert消息会出来什么,随便我输入了alert(),它在页面中显示了准确的值,就像没有缓存保存一样..
我使用的是谷歌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>';
}
?>
所以,源文件被echo到innerHTML后,会被保存到访问者的缓存中。
【问题讨论】:
标签: javascript ajax caching