是否可以将Javascript函数存储在内存中,以便在网站的多个页面上使用
Is it possible to store a Javascript function in memory for use on multiple pages of site?
我有一个很长的javascript函数(大约缩小了72k),这是我网站上几个页面所必需的。我现有的在页面上使用该函数的方法是通过通常的方式调用脚本:
<script type="text/javascript" src="./javascript/complex_function.js"></script>
然而,这涉及到读取和解析每个页面上需要的脚本。如果我能把这个函数存储在浏览器的内存中,然后简单地从那里调用它,那么它看起来会更高效、更快(是吗?)
遗憾的是,sessionStorage似乎只支持作为字符串的键和值的存储。我已经尝试过将函数字符串化(正如其他地方所讨论的:Javascript对象存储在sessionStorage或localStorage中),比如:
// First call the function in an initial page of the site:
<script type="text/javascript" src="./javascript/complex_function.js"></script>
// Then stringify it and store in sessionStorage:
sessionStorage.setItem('my_function', JSON.stringify(my_function));
此后,从理论上讲,我应该能够在我的网站上任何活动会话的地方从sessionStorage检索函数,如下所示:
var temp = JSON.parse(sessionStorage.getItem('my_function');
尽管(1)这不起作用,或者至少我找不到让它起作用的方法,以及(2)即使我能让它发挥作用,它仍然需要解析函数,这将违背目的(对吧?)
所以。。。在内存中存储Javascript函数的最佳方式是什么(请不要使用cookie),以便可以从我网站上的任何页面调用它?(或者这可能吗?)
您的浏览器已经为您完成了这项工作。它将在脚本第一次下载时缓存脚本,以减少加载时间,因此一旦加载,第一次对该文件的连续请求将更快,因为它是从本地机器而不是服务器上提取的。
首先,我认为将js函数存储在内存中不是一个好主意。根据我的经验,sessionStorage
只存储字符串值,所以您可以尝试eval()
相关文章:
- 用Javascript更改我网站上的字体大小
- 如何检测负责网站某些部分的JavaScript根文件
- 如何在谷歌网站中使用javascript获取当前页面的网址
- 我想用Javascript网站在开放的Chrome浏览器上执行功能
- 在一个javascript文件中为整个网站创建标签
- 如何在使用Javascript浏览网站时处理原始窗口
- "访问控制允许起源”;通过javascript从http页面调用同一网站的httpsurl时出现问题
- Javascript/jQuery/AAJAX-从网站请求字符串
- Javascript.如何用javascript将信息发送到另一个网站
- Javascript+动态菜单+当前链接样式(CSS)+基于PHP的网站
- 在元素悬停上显示带有javascript的弹出式网站
- Chrome 扩展徽章颜色外部网站 JavaScript 更改
- Android 应用程序和网站 JavaScript
- Firefox Scratchpad 的 JavaScript 代码比标准网站 JavaScript 代码具有更多的权限
- 位置感知和天气网站.Javascript和跨站点XML的问题
- 网站javascript没有在iphone上运行(safari)
- 登录到网站Javascript
- 如果人们想重用输入字段,我需要帮助他们刷新我的网站.||JavaScript
- 检测iPad设备,并可选择查看常规网站JavaScript
- 网站Javascript搜索引擎