0

我想要这样的东西:第一次加载我的网页时,我将一个函数存储fn在浏览器的本地存储中。从那时起,每当要向我的域发出请求时fn,甚至在发出该请求之前都会执行(但当然是在确定要向我的域发出请求之后)

可能吗?

4

3 回答 3

1

我认为您正在寻找的是所谓的应用程序缓存。应用程序缓存允许您指定缓存清单以告诉支持的浏览器您站点上的某些文件应该被缓存,并在用户第二次访问您的站点时自动加载表单缓存。浏览器将在站点加载后检查更新,因此即使您更新清单文件(这是告诉浏览器某个缓存文件已更改的唯一方法),浏览器也会在后台下载更新的文件。然后您可以选择自动重新加载页面,或者只让用户使用旧缓存,直到他们下次加载缓存页面。

http://www.html5rocks.com/en/tutorials/appcache/beginner/

这是在将单个请求发送到您的站点之前加载 html/images/js 或执行 js 的唯一方法。这也意味着如果您正确设计您的网站/应用程序,即使用户完全离线也可以使用它。

于 2013-01-11T05:05:54.220 回答
0

您不能使用 Javascript 的任何半永久方式(本地存储/cookies)来存储函数。您可以存储一个函数名称,然后您将使用它来确定要执行的函数。如果您在域的每个页面上都包含 javascript 文件,那么这是可能的。

这可以通过设置 cookie 或在本地存储中存储值来轻松完成。如果该值不存在,则为第一次。

于 2013-01-11T04:53:24.183 回答
0

我希望不会,因为这些功能相当于地雷。想象一下,我知道银行合并将要发生,所以我购买了合并后公司可能拥有的一堆域,并做一些事情来吸引流量去那里,这些功能将其中一个功能存储在浏览器缓存中。然后,合并后的银行追随我抢注域名,我毫不费力地交出了域名。即使我不拥有该域,我嵌入的脚本现在也会针对银行的任何请求运行,因此只有当用户实际导航到银行网站时,它才能为我的网络钓鱼站点启动弹出窗口。

于 2013-01-11T04:55:04.620 回答