Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在内存中存储Javascript函数,以便在站点的多个页面上使用?_Javascript_Jquery_Session - Fatal编程技术网

是否可以在内存中存储Javascript函数,以便在站点的多个页面上使用?

是否可以在内存中存储Javascript函数,以便在站点的多个页面上使用?,javascript,jquery,session,Javascript,Jquery,Session,我有一个很长的javascript函数,大约72k,在我的站点的几个页面上都需要。我在页面上使用该函数的现有方法是通过通常的方式调用脚本: <script type="text/javascript" src="./javascript/complex_function.js"></script> …虽然1这不起作用,或者至少我找不到一种方法使它起作用,2即使我能使它起作用,它仍然需要解析函数,这会破坏目的,对吗 那么…在内存中存储Javascript函数的最佳方法是什

我有一个很长的javascript函数,大约72k,在我的站点的几个页面上都需要。我在页面上使用该函数的现有方法是通过通常的方式调用脚本:

<script type="text/javascript" src="./javascript/complex_function.js"></script>
…虽然1这不起作用,或者至少我找不到一种方法使它起作用,2即使我能使它起作用,它仍然需要解析函数,这会破坏目的,对吗


那么…在内存中存储Javascript函数的最佳方法是什么?请不要cookies,这样就可以从我网站的任何页面调用它了?或者这可能吗?

您的浏览器已经为您完成了这项工作。它会在脚本第一次下载时缓存脚本,以减少加载时间,因此,一旦加载第一次,对该文件的连续请求将更快,因为它是从本地计算机而不是服务器中提取的。

首先,我认为将js函数存储在内存中不是一个好主意。
根据我的经验,sessionStorage只存储字符串值,因此您可以尝试eval

您只能在浏览器缓存中存储js文件根据网站的托管方式和对Javascript文件的请求,您可以将其缓存。。。当被请求时,基本上会返回文件的304状态-即不修改解释函数需要多长时间?内存指的是缓存。但是,从缓存中读取内容是否比从文件中读取快?eval将否定在sessionStorage中“缓存”脚本的任何好处。OP特别声明他希望节省解析函数的时间。您所说的“解析函数”是什么意思?如果您指的是加载JS文件的时间,请参阅我的答案。如果你说的是缓存函数的结果,那么OP根本就没有提到这一点。@Rory所说的“解析”是指计算和运行。例程在调用它的每个页面上执行条件更改,因此没有要存储的“结果”或“返回值”;这是我希望尽快加载的程序本身~74kb,这样它就可以在相关页面上完成工作。然后我的答案仍然是相关的…即使我可以让它工作,它仍然会涉及解析函数,这会破坏目的,所以我想说OP确实提到了它。OP是否应该真正关注解析/解释时间是不同的,我对OP发表评论的原因也是不同的
// 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));
var temp = JSON.parse(sessionStorage.getItem('my_function');