全局JS文件:仅执行一次JSON调用

时间:2016-03-07 17:55:41

标签: javascript

我相信我犯了一个可怕的错误。我有一个全局JS文件,我通过脚本标记包含在每个JSP页面上。

<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状态。所以我认为我将不得不加载文件并在我需要的每个页面上调用它。这是真的?

1 个答案:

答案 0 :(得分:0)

我在这里找到了答案:

Global vars across pages

HTML5支持sessionStorage,只要会话正在使用,它就会存储变量。唯一的缺点是它似乎并不完全支持在所有浏览器中存储对象。但它绝对是一个很好的解决方案。