【问题标题】:Use page or httphandler to output javascript variables使用 page 或 httphandler 输出 javascript 变量
【发布时间】:2011-06-29 11:20:51
【问题描述】:

我有一些想要包含在 asp.net 页面中的 javascript 变量。这些是在代码中构建的。我在客户端代码中使用这些变量。

我想知道是更好的方法。

A.创建一个处理变量逻辑的 httphandler,并且处理程序返回 javascript。对处理程序的引用包含在母版页中

B.后面的母版页代码处理变量的逻辑并在页面标记中返回。

每个页面都需要这些变量。

我想知道从性能和最佳实践的角度来看,哪种方法最好。

我喜欢处理程序的原因是它意味着标记中不包含 javascript,完全分离。但是处理程序的缺点是它意味着额外的 http 请求,并且在处理处理程序时可能会减慢页面呈现速度。

意见?

【问题讨论】:

    标签: c# javascript asp.net httphandler


    【解决方案1】:

    有趣的问题。通常,我将变量输出到自定义命名空间(全局对象)中,这基本上是您的选项 B,但除了从未考虑过创建自定义 httpHandler 之外,我不能说我有这样做的具体原因!

    【讨论】:

      【解决方案2】:

      我假设 javascript 的生成将由一个通用模块处理,因此任何一个选项都可能是合适的。

      对处理程序的额外调用不太可能导致任何明显的开销。我们使用这些来处理我们数据库中的图像,没有任何问题。

      基于以上所述,我个人会使用处理程序,因为它是一个更优雅的解决方案,虽然有点复杂。

      【讨论】:

        【解决方案3】:

        处理程序选项似乎更优雅,但它可能会让您在服务器或客户端甚至某些代理上缓存时遇到一些麻烦。我会说选择简单的。

        【讨论】:

          【解决方案4】:

          您可以使用HttpModule 将javascript 直接写入响应输出。这样,您就没有对处理程序的请求或母版页中的任何标记。

          【讨论】:

          • 这是一个非常有趣的方法,能否举个例子来说明我如何做到这一点?
          【解决方案5】:

          您可以有一段 javascript 代码将这些变量存储在隐藏字段 market runat=server 中。然后,您可以在回发时在服务器端获取它们。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-10-04
            • 2013-08-31
            • 2013-04-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-09-18
            相关资源
            最近更新 更多