【问题标题】:How do I separate out constants for JavaScript?如何分离出 JavaScript 的常量?
【发布时间】:2011-11-13 23:23:01
【问题描述】:

我有一个使用 JavaServer Pages (JSP) 和重要的 JavaScript (JS) 创建的网页,它可以调用其他服务器。页面所访问的 URL 取决于我部署到的服务器(阅读:环境)。

我有两种可能的策略(至少)可以使用。

  1. 我可以在 JS 文件中定义服务器名称常量并在该网页上使用脚本标记。
  2. 我可以用 JSP 页面编写一个 JS 变量,作为某种动态内容。

我非常依赖策略 1,但不确定其中任何一个是否真的更好。我想知道什么是最佳做法,以及为什么。

【问题讨论】:

    标签: javascript jsp constants externalizing


    【解决方案1】:

    我也有同样的问题,老实说,我也不知道“正确”的做法是什么,但我确实讨厌全局变量,所以我目前这样做,

    在jsp中,

    <script src="${pageContext.request.contextPath}/js/script.min.js"></script>
    <script type="text/javascript">
         init('${pageContext.request.contextPath}');
    </script>
    

    那么js就是,

    function init(baseURL, undefined){
      ...
    }
    

    那时无需担心全局变量。

    【讨论】:

    • 如果路径不是 contextPath 怎么办?
    • @John 这只是一个例子,它可以做任何事情。我只是想展示如何避免使用全局 javascript var,因为这通常是个坏主意。
    • 我想我的意思是,如果我想让它成为 JSP 端的变量,我会留下某种 .property 文件来加载,无论如何它最终都会作为服务器上的文件.无论如何,我赞成这一点,因为它是一种可行的方法。不确定我是否会最终使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多