Django应用程序,用于自动识别和重新加载过时的网页
local-reload的Python项目详细描述
本地加载
提供一种识别和自动重新加载“过时”页面的方法。在
在localStorage中保留“上次更新时间”,并在用户“更新数据”时更新它。任何时候用户“返回”到某个页面(通过浏览器历史记录或切换选项卡/窗口),如果该页面已过时(如果在上次更新时间之前呈现),该页面将自动重新加载。在
适用于积垢严重的场所,尤其是当您使用历史.后退()或使用多个选项卡/窗口作为正常工作流的一部分。在
局限性
每次浏览器更新<3>
如果在一个浏览器中更新数据,则不会在另一个浏览器中重新加载页面。这是为单个用户在单个浏览器中更新和查看数据而设计的。我们使用window.localStorage
来存储更新时间,因此我们的作用域与localStorage的作用域相同(因此命名为“local匼reload”)。在
更新时间是站点范围内的
维护一个单一的、站点范围的“更新时间”。对一段数据的更改将使所有先前呈现的页面失效,即使它们不显示该数据。在
更新检测
当任何表单被发布时,我们会自动重置更新时间。更准确地说,只要表单的方法不是GET,我们就重置每个表单提交事件的更新时间。在
如果您使用实际的表单提交(即使是通过javascript处理)作为触发数据更新的事件,那么这种方法非常有效。如果在用户未提交表单的情况下更新数据,则必须手动调用window.local_reload_invalidate()
。在
无后台重新加载
页面不会在后台选项卡/窗口中重新加载。只有当用户将焦点返回给它们时,才会重新加载它们。这实际上是设计的。以前尝试重新加载后台窗口/选项卡在许多情况下都会导致不良行为。在
安装
pip install local_reload
- 将“local\u reload”添加到
INSTALLED_APPS
{% include "local_reload/local_reload_support.html" %}
在显示或更新数据的任何页面的head
*中
*这应该添加到您的head
的顶部附近,这样它可以尽早运行。在
window.disable_local_reload
如果要在给定窗口上临时/有条件地禁用本地重新加载,请将此设置为true。在
导航技巧
我们包括一份导航技巧.js在我们的静态文件中。此脚本与本地加载完美匹配。在
- 项目
标签: