Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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 IE在updatepanel部分更新后变慢_Javascript_Asp.net_Performance_Internet Explorer_Updatepanel - Fatal编程技术网

Javascript IE在updatepanel部分更新后变慢

Javascript IE在updatepanel部分更新后变慢,javascript,asp.net,performance,internet-explorer,updatepanel,Javascript,Asp.net,Performance,Internet Explorer,Updatepanel,我试图在UpdatePanel中放置一个用户控件。 显示控件时,在IE 6和8中,在文本框内键入会有很大的延迟。FireFox具有出色的性能。不仅打字,而且滚动等都会经历长达几秒钟的大延迟 usercontrols包含相当多的javascript函数,这些函数使用ScriptManager.RegisterScriptBlock或RegisterStartupScript函数重新注册 有人知道为什么打字变得这么慢吗?我认为这与jQuery函数的重新注册导致的内存泄漏有关。但是我找不到它的来源 是

我试图在UpdatePanel中放置一个用户控件。 显示控件时,在IE 6和8中,在文本框内键入会有很大的延迟。FireFox具有出色的性能。不仅打字,而且滚动等都会经历长达几秒钟的大延迟

usercontrols包含相当多的javascript函数,这些函数使用ScriptManager.RegisterScriptBlock或RegisterStartupScript函数重新注册

有人知道为什么打字变得这么慢吗?我认为这与jQuery函数的重新注册导致的内存泄漏有关。但是我找不到它的来源


是否考虑由您自己或他人编写的JavaScript或可靠框架的一部分

一般提示: -减少进程和函数调用 -委派事件 -缓存和重用jQuery结果,特别是对于IE,并且仅当您知道DOM已更改时才重新查询。 -除非您知道如何避免所有容易发生内存泄漏的做法,否则请避免递归。 -关于表单输入,尽可能使用“聚焦”和“模糊”事件,而不是“按键”。 -当使用“按键”事件时,去盎司,去盎司,去盎司!谷歌it

使用:
-Firebug profiler查看调用了哪些函数以及调用了多少次,这将显示您需要减少的内容。

感谢您的建议。实际上,我们有各种各样的javascript,我自己的,由同事们编写,并嵌入到我们的框架团队编写的自定义控件中。我将查看updatepanel之外的委托事件和缓存。您关于使用Firebug profiler的建议帮助很大。我不知道这个功能。我们发现代码看起来像$'body'.keypressfunction{};。每次我们输入一些东西,都会有大约50个电话。再次感谢您的建议。$body.keypress。。是imo。事件委派的一种反模式,因为它是一个总是触发的全面侦听器。将侦听器绑定到最接近的祖先,例如,表单元素捕获表单中的事件,或者ul元素捕获列表项的事件。此外,考虑在需要时懒惰地附加事件侦听器,而不是总是OnDeMeDead。