我有一个方案是在第一次或一次加载页面后刷新浏览器。 因为加载页面时数据显示不正确,当我刷新浏览器时它正在显示。我不知道原因。
非常感谢
答案 0 :(得分:0)
所以你只想让浏览器刷新一次?做这样的事。
window.onload = function(){
if(!document.location.hash){
window.location = "#loaded";
}
}
或jquery
$(document).ready(function(){
if(document.location.hash){
window.location = "#loaded";
}
});
但老实说,这只是一个临时解决方案。尽可能多的尝试通过快速修复来掩盖它。我保证它会回来困扰你。编写良好的结构化代码将持续一生,并且可以在未来的项目中重复使用。
答案 1 :(得分:0)
总是,你将不得不使用一些JavaScript。您想要的是在页面完全加载时运行刷新代码。您可以使用HTML onload
事件,但这有问题(例如,它会在加载任何图像之前触发)。我建议使用JQuery的ready()
event,如果你想确保它在整个页面加载后触发。
示例:强>
// NOTE: This will only work with JQuery loaded.
$(document).ready(function(){
location.reload(true);
});
在第一页加载时只启动它会有点棘手。您可以在URL中添加一个锚后缀,以跟踪您是否已刷新页面,然后只有在URL中不存在时才刷新:
$(document).ready(function(){
if(location.hash != "#")
{
// Set the URL to whatever it was plus "#".
// (The page will NOT automatically reload.)
location = "#";
// Reload the page.
location.reload(true);
}
});
或者,您可以使用查询字符串,因为这将在更改时自动刷新页面:
$(document).ready(function(){
var marker = 'r'; // 'r' is for "refreshed"
if(location.search != "?"+marker)
{
// Set the URL to whatever it was plus "?r".
// (This will automatically force a page reload.)
location = "?"+marker;
}
});
警告:使用这些示例中的任何一个,如果您的用户在将“#”或“?r”标记添加到网址后为该网页添加书签,则该网页将不会刷新重新访问该页面。如果你想要它是防弹的,你可能不得不使用cookie。