Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用page或httphandler输出javascript变量_C#_Javascript_Asp.net_Httphandler - Fatal编程技术网

C# 使用page或httphandler输出javascript变量

C# 使用page或httphandler输出javascript变量,c#,javascript,asp.net,httphandler,C#,Javascript,Asp.net,Httphandler,我想在asp.net页面中包含一些javascript变量。这些都是在代码中构建的。我在客户端代码中使用这些变量 我想知道更好的方法是什么 A.创建一个httphandler,它处理变量的逻辑并返回javascript。母版页中包含对处理程序的引用 母版页代码隐藏处理页面标记中变量和返回的逻辑 每个页面上都需要这些变量 我想知道从性能和最佳实践的角度来看,哪种方法是最好的 我喜欢这个处理程序的原因是它意味着标记中不包含javascript,完全分离。但是,处理程序的缺点是,它意味着额外的http

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

我想知道更好的方法是什么

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

母版页代码隐藏处理页面标记中变量和返回的逻辑

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

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

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


意见?

有趣的问题。通常,我会将变量输出到一个自定义名称空间(全局对象),这基本上是您的选项B,但是我不能说我有这样做的具体原因,除了从来没有想过创建一个自定义httpHandler

我假设javascript的生成将由一个公共模块处理,因此这两个选项都是合适的

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


基于上述情况,我个人将使用该处理程序,因为它是一个更优雅的解决方案,尽管有点复杂

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

您可以执行一个将javascript直接写入响应输出的操作。这样,您就不需要向处理程序发出请求,也不需要在母版页中添加任何标记。

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

这是一种非常有趣的方法,是否可以获得一个示例,说明如何实现这一点?