全局JS文件:只执行一次JSON调用
问题描述:
我相信我犯了一个可怕的错误。我有一个全球性的JS文件,我通过脚本标记包含在每个JSP页面上。全局JS文件:只执行一次JSON调用
<script type="text/javascript" src="/myGlobalJS.js" ></script>
在那个JS文件中,我打电话来获取JSON;但我只希望执行一次。每次加载新的JSP页面时,它都会执行。
var myObj = (function(){
var myData = {};
return{
setData:function(data){
myData = data.response;
}
};
})();
(function(){
$.getJSON(jsonUrl)
.done(function(data){
myObj.setData(data.response.data);
});
})();
我该如何纠正这个优雅?
更新:我现在可以看到我的想法的错误。我正在考虑将这些JSP页面作为应用程序,当应用程序加载时,它应该只执行一次获取这个JSON文件。跨这些JSP页面没有持久的UI状态。所以我认为我不得不加载该文件并在每个需要的页面上调用它。这是真的?
答
我已经找到了答案在这里:
HTML5支持sessionStorage的,将存储变量只要会话使用。唯一的缺点是,它似乎没有完全支持跨所有浏览器存储对象。但它绝对是一个漂亮的解决方案。
每个执行一次? – James
曾执行过一次。我现在看到了这个愚蠢的行为。基本上,我只希望这个用户在网站上执行一次。因此,如果它已经在一个JSP页面上执行,那么我不希望它在任何其他页面上执行。 – fumeng
U可以在localstorage中添加变量,以及一些if语句来验证数据是否先前已加载。 – loadaverage