Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/126.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
从javascript调用静态方法_Javascript_C#_Asp.net_Charts_Fusioncharts - Fatal编程技术网

从javascript调用静态方法

从javascript调用静态方法,javascript,c#,asp.net,charts,fusioncharts,Javascript,C#,Asp.net,Charts,Fusioncharts,我需要根据下拉列表中选择的值创建图表 我根据所选的值从数据库中提取值,并以图表和图形(Google图表或任何基于java脚本的图表)的形式显示数据 但是从javascript调用时,代码隐藏方法需要是静态的 如果该方法是静态的,那么数据将保存在内存中,如果是多用户站点,用户可能会得到不合适的图表 这意味着,用户将只获取最近保存在内存中的最新数据 请建议如何克服这个问题。我不明白为什么需要使用静态方法。这不是绝对必要的 无论如何,如果您需要将数据存储在内存中(无论它是静态方法),您可以为应用程序使

我需要根据下拉列表中选择的值创建图表

我根据所选的值从数据库中提取值,并以图表和图形(Google图表或任何基于java脚本的图表)的形式显示数据

但是从javascript调用时,代码隐藏方法需要是静态的

如果该方法是静态的,那么数据将保存在内存中,如果是多用户站点,用户可能会得到不合适的图表

这意味着,用户将只获取最近保存在内存中的最新数据


请建议如何克服这个问题。

我不明白为什么需要使用静态方法。这不是绝对必要的

无论如何,如果您需要将数据存储在内存中(无论它是静态方法),您可以为应用程序使用缓存。它基本上是一本字典。然后,在某个时刻,您需要用应用程序识别用户,以便区分内存中的数据。如果您有一个身份验证模块,那么密钥可能是用户的身份。如果没有,则向客户端发送具有唯一值的cookie,如DateTime.Now.Ticks.ToString()。这是识别用户的安全方法

所有JS调用都会发送cookies。这是识别和区分内存中数据的方法


您好

谢谢您的回复。如果该方法是非静态的,并且它不包含Web方法标记,那么这些方法就不能从java脚本进行调用。javascript只调用静态方法。在我的例子中,我不想在内存中保存任何数据。我讲了静态方法的行为,它默认将数据保存在内存中。好了,现在我明白了。您正在服务器端使用Webforms。是的,一种解决方案是使用静态方法来使用javascript,但我不知道您为什么要指出“将数据保存在内存中”。你能详细说明你的问题吗?这是我第一次听说这样的事情。在web应用程序的上下文中,静态方法在所有请求线程之间共享,并保留在内存中。这意味着,如果两个请求都在处理,并且每个请求都试图设置静态数据段,那么您就有一个竞争条件(以及潜在的线程问题)。是的,但您的问题只是从数据库获取值,那么它的线程是安全的。如果您计划设置静态变量,则可以设置竞争条件。检查,还是我遗漏了什么?就我所见,您的方法只需要从服务器返回数据。你的方法是安全的,只要它不依赖于静态方法之外的静态变量。请参见下面url中的示例。这是ajax,数据不会在内存中,每个用户都会看到保存在DB中的数据。