我有一个ajax应用程序,在这个应用程序中,客户端可能会频繁地查找大量数据(比如通过击键),服务器端的数据会在固定的时间由一个后台进程每天更新一到两次。为了避免频繁访问服务器,我将数据存储在一个xml文件中,所以客户端在页面第一次加载时下载一次,然后通过javascript从本地数据文件中查找数据。但用户可能会在更改之前不久加载页面,然后开始使用它,而不刷新页面,因此数据文件永远不会更新,因此不断告诉用户新数据不可用。我该如何解决这个问题?
发布于 2009-07-16 22:39:11
您应该为生成的XML文件设置适当的HTTP缓存头,以便任何超过该时间的客户端请求都将获得新版本并将其缓存到本地,就像任何其他静态内容一样。
发布于 2009-07-16 02:35:02
如果数据负载不是很大...将数据作为XML岛包含在主文档中。要么在文档生成(aspx、php等)中形成它,要么在加载时(通过ajax调用)填充一个保留的文档节点。这样,您的用户总是拥有最新的数据,您不必担心缓存问题,生活也变得简单得多。
如果该节点很大,请根据需要通过ajax调用填充该节点。
发布于 2009-07-16 02:47:47
一个明显的选择是添加一些AJAX,它每隔x分钟轮询服务器一次。如果数据需要刷新,只需在页面上明显的位置显示一条非阻塞消息,通知用户有新数据可用,并提供一个刷新页面的链接。另外,如果用户想要自己检查新数据(而不是等待x分钟过去),您可能需要提供一个按钮供用户单击。
如果你使用HEAD请求,你可以只检查最后修改的头部。
https://stackoverflow.com/questions/1135118
复制相似问题