javascript - 全局JS文件: Execute JSON call only once

标签 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 状态。因此,不幸的是,我认为我必须加载该文件并在我需要的每个页面上调用它。这是真的?

最佳答案

我在这里找到了答案:

Global vars across pages

HTML5 支持 sessionStorage,只要 session 正在使用,它就会存储变量。唯一的缺点是它似乎还没有完全支持跨所有浏览器存储对象。但这绝对是一个绝妙的解决方案。

关于javascript - 全局JS文件: Execute JSON call only once,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35850594/

相关文章:

javascript - Angular Controller 作为语法,特殊场合还需要 $scope 吗?

javascript - 如何使媒体查询覆盖在代码中动态设置的值?

javascript - 检查剑道网格列中的日期是否是今天的日期

javascript - 如何在 ASP.NET MVC 中使用 Razor View 从对象列表中获取 Controller 中的单个对象

javascript - meteor mup 设置 mongo 失败 sudo : command not found

javascript - Canvas 工具提示出现在 Canvas 外?

javascript - 使用 Id 修改页面

javascript - Protractor :如何像我们在 java getText.trim() 中使用的那样从字符串中删除多余的空格

javascript - CSS全局变量随js变化

javascript - jQuery 找到 child 的高度并应用于 parent