我有一个PHP网站,完全基于ajax。
有一个index.php
,但是它的一部分,所有其他页面都不会直接呈现在浏览器中。相反,所有post和get请求都是通过ajax从JavaScript完成的。所以基本上,如果你去/contact.php
,你将看不到任何东西。所有页面都在index.php
内呈现。
有很多人使用此页面并不是非常精通网络,当我们要求他们刷新页面时,可能无法理解这意味着什么。
当我们发布新版本时,最大的问题就出现了。特别是JavaScript代码(但不仅仅是)可以是客户网页中的旧代码,因为它们可能无法在几周内刷新页面。
我执行svn update
将新代码发布到服务器。然后我刷新页面并查看新功能。
然而,那些不知道如何刷新的人将看不到任何东西。我在页面上添加了一个带有文本" refresh"的大按钮,它执行location.reload
。
这可能会帮助一些人,但不是每个人。
我怎样才能强迫"浏览器在新版本发布时重新加载? 我更喜欢简单的东西,不需要额外的库或计时器。
当用户对页面执行某些操作时,页面不会刷新也非常重要,因为在发生这种情况时,页面可能会丢失。
答案 0 :(得分:2)
我认为您可以在代码中添加版本常量
<?php
define(VERSION, '1.0');
每次调用javascript都会添加此扩展程序
<script type="text/javascript" src="myfile.js?<?php echo VERSION ?>">
因此,当您更新版本时,导航器将会调用每个js。是否更清楚了?
您还可以添加将在任何验证操作之前调用的版本检查Web服务,以便您可以在执行操作之前刷新页面或警告用户。
没有timer或socket.io,您无法为用户刷新页面。