如何使用JavaScript或HTML刷新页面?
当前回答
如果要控制缓存页面上的更新,我有一个很好的方法。
添加一些javascript页面,总是获得页面的版本号作为字符串(ajax)加载。例如:www.yoursite.com/page/about?getVer=1&__[日期] 如果用户访问过该页面一次,则将其与存储的版本号(存储在cookie或localStorage中)进行比较,否则直接存储它。 如果版本与本地版本不相同,则使用window.location.reload(true)刷新页面 您将在页面上看到所做的任何更改。
该方法需要至少一个请求,即使不需要请求,因为它已经存在于本地浏览器缓存中。但是与完全不使用缓存(以确保页面将显示正确的更新内容)相比,开销要小一些。这样每个页面请求只需要几个字节,而不是每个页面的所有内容。
重要提示:版本信息请求必须在您的服务器上实现,否则它将返回整个页面。
www.yoursite.com/page/about?getVer=1&__[date]返回的版本字符串示例: skg2pl-v8kqb
为了给你一个代码示例,这里是我库的一部分(我不认为你可以使用它,但它可能会给你一些想法如何做到这一点):
o.gCheckDocVersion = function() // Because of the hard caching method, check document for changes with ajax
{
var sUrl = o.getQuerylessUrl(window.location.href),
sDocVer = o.gGetData( sUrl, false );
o.ajaxRequest({ url:sUrl+'?getVer=1&'+o.uniqueId(), cache:0, dataType:'text' },
function(sVer)
{
if( typeof sVer == 'string' && sVer.length )
{
var bReload = (( typeof sDocVer == 'string' ) && sDocVer != sVer );
if( bReload || !sDocVer )
{
o.gSetData( sUrl, sVer );
sDocVer = o.gGetData( sUrl, false );
if( bReload && ( typeof sDocVer != 'string' || sDocVer != sVer ))
{ bReload = false; }
}
if( bReload )
{ // Hard refresh page contents
window.location.reload(true); }
}
}, false, false );
};
如果你使用的是独立于版本的资源,如javascript或css文件,添加版本号(通过url重写实现,而不是通过查询,因为它们大多不会被缓存)。例如:www.yoursite.com/ver-01/about.js
对我来说,这个方法很有效,也许它也能帮助到你。
其他回答
Use:
window.location.reload();
你也可以使用
<input type="button" value = "Refresh" onclick="history.go(0)" />
这对我来说很有效。
如果要控制缓存页面上的更新,我有一个很好的方法。
添加一些javascript页面,总是获得页面的版本号作为字符串(ajax)加载。例如:www.yoursite.com/page/about?getVer=1&__[日期] 如果用户访问过该页面一次,则将其与存储的版本号(存储在cookie或localStorage中)进行比较,否则直接存储它。 如果版本与本地版本不相同,则使用window.location.reload(true)刷新页面 您将在页面上看到所做的任何更改。
该方法需要至少一个请求,即使不需要请求,因为它已经存在于本地浏览器缓存中。但是与完全不使用缓存(以确保页面将显示正确的更新内容)相比,开销要小一些。这样每个页面请求只需要几个字节,而不是每个页面的所有内容。
重要提示:版本信息请求必须在您的服务器上实现,否则它将返回整个页面。
www.yoursite.com/page/about?getVer=1&__[date]返回的版本字符串示例: skg2pl-v8kqb
为了给你一个代码示例,这里是我库的一部分(我不认为你可以使用它,但它可能会给你一些想法如何做到这一点):
o.gCheckDocVersion = function() // Because of the hard caching method, check document for changes with ajax
{
var sUrl = o.getQuerylessUrl(window.location.href),
sDocVer = o.gGetData( sUrl, false );
o.ajaxRequest({ url:sUrl+'?getVer=1&'+o.uniqueId(), cache:0, dataType:'text' },
function(sVer)
{
if( typeof sVer == 'string' && sVer.length )
{
var bReload = (( typeof sDocVer == 'string' ) && sDocVer != sVer );
if( bReload || !sDocVer )
{
o.gSetData( sUrl, sVer );
sDocVer = o.gGetData( sUrl, false );
if( bReload && ( typeof sDocVer != 'string' || sDocVer != sVer ))
{ bReload = false; }
}
if( bReload )
{ // Hard refresh page contents
window.location.reload(true); }
}
}, false, false );
};
如果你使用的是独立于版本的资源,如javascript或css文件,添加版本号(通过url重写实现,而不是通过查询,因为它们大多不会被缓存)。例如:www.yoursite.com/ver-01/about.js
对我来说,这个方法很有效,也许它也能帮助到你。
这里有535种使用javascript重新加载页面的方法,非常酷:
以下是前20条:
location = location
location = location.href
location = window.location
location = self.location
location = window.location.href
location = self.location.href
location = location['href']
location = window['location']
location = window['location'].href
location = window['location']['href']
location = window.location['href']
location = self['location']
location = self['location'].href
location = self['location']['href']
location = self.location['href']
location.assign(location)
location.replace(location)
window.location.assign(location)
window.location.replace(location)
self.location.assign(location)
最后10点:
self['location']['replace'](self.location['href'])
location.reload()
location['reload']()
window.location.reload()
window['location'].reload()
window.location['reload']()
window['location']['reload']()
self.location.reload()
self['location'].reload()
self.location['reload']()
self['location']['reload']()
原文
试试这个效果很好
jQuery("body").load(window.location.href);
推荐文章
- Babel 6改变了它导出默认值的方式
- 如何配置历史记录?
- ES6模板文字可以在运行时被替换(或重用)吗?
- [Vue警告]:找不到元素
- 可以在setInterval()内部调用clearInterval()吗?
- AngularJS控制器的生命周期是什么?
- 无法读取未定义的属性“msie”- jQuery工具
- 形式内联内的形式水平在twitter bootstrap?
- 我的蛋蛋怎么不见了?
- JavaScript中的排列?
- 自定义元素在HTML5中有效吗?
- JavaScript中有睡眠/暂停/等待功能吗?
- 如何触发自动填充在谷歌Chrome?
- 创建圈div比使用图像更容易的方法?
- 如何禁用文本选择使用jQuery?