Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/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
Javascript jqGrid减慢了谷歌地图的速度_Javascript_Performance_Asp.net Mvc 2_Google Maps_Jqgrid - Fatal编程技术网

Javascript jqGrid减慢了谷歌地图的速度

Javascript jqGrid减慢了谷歌地图的速度,javascript,performance,asp.net-mvc-2,google-maps,jqgrid,Javascript,Performance,Asp.net Mvc 2,Google Maps,Jqgrid,我正在使用jqGrid 3.8.2(一个javascript网格组件)构建一个ASP.NETMVC2应用程序,以显示存储在数据库中的一些数据。在我的页面上,我还有一个带有平铺覆盖的谷歌地图 我注意到,与其他不使用jqGrid的应用程序相比,此应用程序中地图和平铺覆盖的加载时间的性能要差得多。如果jqgrid和map同时请求数据,速度自然会减慢,但当我缩放/平移地图时,网格不会运行任何服务器请求 在我的代码中进行了一些调试(一点一点地添加/删除功能)之后,我将其归结为:如果我将jqgrid配置为使

我正在使用jqGrid 3.8.2(一个javascript网格组件)构建一个ASP.NETMVC2应用程序,以显示存储在数据库中的一些数据。在我的页面上,我还有一个带有平铺覆盖的谷歌地图

我注意到,与其他不使用jqGrid的应用程序相比,此应用程序中地图和平铺覆盖的加载时间的性能要差得多。如果jqgrid和map同时请求数据,速度自然会减慢,但当我缩放/平移地图时,网格不会运行任何服务器请求

在我的代码中进行了一些调试(一点一点地添加/删除功能)之后,我将其归结为:如果我将jqgrid配置为使用“数据类型:local”,它会将性能带回地图中

一旦我设置了“datatype:json”和“url:[myAspNetMvcController]”,地图分幅的加载就会受到很大影响

我的问题是:有人知道为什么会发生这种情况吗?尽管jqGrid没有被要求获取任何新数据,但它似乎一直在后台做一些事情。我在服务器上有断点,所以我知道它不会触发请求。在我看来,一定是jqgrid的“魔力”导致页面上的其他javascript组件运行缓慢,从而导致请求延迟

对我来说,弄清这一点非常重要,我真的不想放弃jqGrid,因为我真的很喜欢它


感谢所有能为我指明正确方向的反馈

找到了答案,结果不是jqgrid才是坏蛋,而是服务器端会话存储!我使用Session作为网格数据的缓存,因为我需要过滤后的数据用于网格以外的其他用途,并且希望避免对数据库的冗余访问。一旦我向会话对象写入了一些内容,服务器就会受到攻击,并开始以较慢的速度(通常是几秒钟!)处理所有传入的请求。我后来了解到,在大多数情况下,不建议使用会话对象进行缓存,但我仍然不知道为什么它会导致这样恶劣的副作用。如果有人能启发我,那就太好了!这不可能是占用服务器上大量RAM的问题,因为仅仅通过写入就降低了性能

Session["test"] = "test";

由于我实际上需要将数据缓存在会话作用域中,因此我通过使用HttpContext.Cache和特定于会话的键解决了这个问题。

您真的使用
datatype:local
datatype:json
而不是
datatype:'local'
datatype:'json'
?您可以尝试捕获从服务器返回的关于或的JSON数据。然后,您可以将JSON数据保存在一个文本文件中:test.JSON,并使用该文件的路径而不是服务器的url。你收到了哪一场演出?