如何强制Web浏览器通过JavaScript对页面进行硬刷新?
硬刷新意味着获取页面的新副本并刷新所有外部资源(图像,JavaScript,CSS等).
我们希望在生产部署中缓存破产,但不要浪费大量时间来确定系统.我的想法是在当前版本号的css和js文件的末尾应用一个参数:
<link rel="stylesheet" href="base_url.com/file.css?v=1.123"/>
Run Code Online (Sandbox Code Playgroud)
两个问题:这会有效地打破缓存吗?这个参数是否会导致浏览器永远不会缓存来自该URL的响应,因为param表明这是动态内容?
yayQuery播客的第11集提到$ .ajax上下文选项.如何在成功回调中使用此选项?我目前正在做的是将输入参数传递回成功回调,以便我可以设置成功/错误后调用的id的动画.如果我使用context选项,那么也许我不必从被调用的例程中传回参数.
在此示例中,我将STATEID传递回success字段,以便在从数据库中删除状态后从DOM中删除状态:
$('td.delete').click(function() {
var confirm = window.confirm('Are you sure?');
if (confirm) {
var StateID = $(this).parents('tr').attr('id');
$.ajax({
url: 'Remote/State.cfc',
data: {
method: 'Delete',
'StateID': StateID
},
success: function(result) {
if (result.MSG == '') {
$('#' + result.STATEID).remove();
} else {
$('#msg').text(result.MSG).addClass('err');;
};
}
});
}
});
Run Code Online (Sandbox Code Playgroud) 我有一个HTML页面.问题是我不想让用户每次放入新内容时刷新页面.
我有以下代码,以确保页面没有缓存:
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="0"/>
Run Code Online (Sandbox Code Playgroud)
问题是,我仍然需要在页面上刷新,以便显示最新的内容.难道我做错了什么?我应该使用其他一些标签吗?
我正在进行ajax调用以获取内容并附加此内容,如下所示:
$(function(){
var site = $('input').val();
$.get('file.php', { site:site }, function(data){
mas = $(data).find('a');
mas.map(function(elem, index) {
divs = $(this).html();
$('#result').append('' + divs + '');
})
}, 'html');
});
Run Code Online (Sandbox Code Playgroud)
问题是,当我改变时a,body我什么也得不到(没有错误,只是没有HTML).我假设身体是一个像'a'的标签?我究竟做错了什么?
这对我有用:
mas = $(data).find('a');
Run Code Online (Sandbox Code Playgroud)
但这不是:
mas = $(data).find('body');
Run Code Online (Sandbox Code Playgroud) window.location.reload()w3schools表示,所有浏览器均支持此功能
但是如何window.location.reload(true)在没有缓存的情况下重新加载页面呢?它的支持程度如何?
这是我的问题:我需要显示一段时间的消息,然后重新加载页面.有人告诉我如何在一定延迟后重新加载页面?
几个月前,我发布了关于如何通过JavaScript刷新页面的答案.
我也提供了一个JSFIDDLE DEMO:
var solutions = [
function () { location.reload(); },
function () { history.go(0); },
function () { location.href = location.href; },
function () { location.href = location.pathname; },
function () { location.replace(location.pathname); },
function () { location.reload(false); },
];
$("[data-func]").on("click", function () {
solutions[parseInt($(this).attr("data-func"))]();
});
Run Code Online (Sandbox Code Playgroud)
有人注意到它location.reload()比其他方法慢.现在我可以看到同样的事情.
它为什么慢?为什么其他人更快?
可能重复:
如何使用JQuery刷新页面?
如何使用Django views.py或Jquery中的某些东西触发重新加载页面?基本上,我希望当您单击Web浏览器的URL栏并按Enter键时,页面会以相同的方式自动重新加载.
谢谢,亚历克斯
javascript ×8
html ×4
jquery ×4
caching ×2
page-refresh ×2
reload ×2
ajax ×1
coldfusion ×1
css ×1
html5 ×1
python ×1