gpt4 book ai didi

php - 是否可以在加载之前刷新页面?

转载 作者:行者123 更新时间:2023-12-02 19:03:44 34 4
gpt4 key购买 nike

如果我的网站更新了怎么办,我的意思是 CSS 和一些内容,更新后老访客返回我的页面时 CSS 不会自动刷新,您必须手动刷新页面。嗯,访问者不是专家,他们首先会认为该页面已损坏或出现问题。

如何使用 Javascript 或 PHP 等编写脚本...以便当有人访问页面/网站时,我希望页面在向访问者打开之前刷新。如果它只在索引页上完成这项工作就可以了。

这可能吗?

我在谷歌帮助下找到了这个脚本,但它不起作用,什么也没有发生!

<script type='text/javascript'>

(function()
{
if( window.localStorage )
{
if( !localStorage.getItem( 'firstLoad' ) )
{
localStorage[ 'firstLoad' ] = true;
window.location.reload();
}
else
localStorage.removeItem( 'firstLoad' );
}
})();

</script>

最佳答案

你最好的选择是“版本化”你的 css url:

<link type="text/css" rel="stylesheet" href="my_style_sheet.css" />

变成了

<link type="text/css" rel="stylesheet" href="my_style_sheet.css?v=2.1" />

任何时候更新样式表时,只需修改 URL 即可。您已将此问题标记为 PHP,因此只需将版本作为变量或常量存储在通用include文件中即可,这将非常简单:

<link type="text/css" rel="stylesheet" href="my_style_sheet.css?v=<?=CSS_VERSION;?>" />

如果您必须在 Javascript 中执行此操作,则可以让 javascript 将其上具有唯一标记(例如时间戳)的新样式表加载到 head 标记中,但这会浪费带宽并减慢页面加载速度,因为用户最终将下载两个样式表:

var css_file=document.createElement("link");
css_file.setAttribute("rel", "stylesheet");
css_file.setAttribute("type", "text/css");
css_file.setAttribute("href", 'link_to_css.php?random_string='+escape(Math.random()));
document.getElementsByTagName("head")[0].appendChild(css_file);

您还可以在 CSS header 中设置较短的缓存过期时间(使您的 css 文件 .php 文件发送 css header 并添加过期 header :

<?php header("Expires: [DATE IN PAST OR NEAR FUTURE]"); ?>

或者在您的网络服务器配置中(例如,在 Apache 中)您可以 set default cache headers based on file type ,因此 CSS 可以设置一个快速的过期时间。然而,您的应用程序的性能将再次受到轻微影响,因为您破坏了用户浏览器缓存的一些优势。

关于php - 是否可以在加载之前刷新页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14530714/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com