问题标签 [freeze]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1761 浏览

javascript - JavaScript 中的 Web 服务调用导致浏览器出现白屏死机 (WSOD)

这是规格:

  • 使用 ASP.NET AJAX 的 ASP.NET 3.5
  • AJAX 控制工具包
  • jQuery 1.3.2
  • 网页服务
  • Windows Server 2003 SP1 上的 IIS6
  • SP1 SQLServer 2005 SP3 站点是 SSL
  • Infragistics Web 组件 2009 卷。2(使用非合气道控件),UltraWebGrid和Tree控件是主要使用的。

这就是问题所在:我在 IE 7/8 中获得了白屏死机 (WSOD)。基本上,我有一个页面,它有一个左窗格,其中有一个 AJAXControl Toolkit Accordion 控件,其中每个手风琴窗格的内容都是一个 Infragistics 树控件。右窗格是一个<div>根据<iframe>在左菜单窗格中单击的内容重新加载其内容的窗格。

在 中<iframe>,当您单击左窗格中的菜单项时,会加载一个包含一个或多个 UltraWebGrid 控件的页面。网格都有一个模板按钮列。当您单击网格行的编辑按钮时,将打开一个用于编辑记录的弹出窗口。这可以正常工作大约十次,然后在第十次(有时更早)时,弹出窗口会在地址栏中打开正确的 URL,但页面永远不会加载。

我们有一个应用程序,它使用一个弹出窗口来更新记录。大多数情况下,当您单击 [编辑] 按钮编辑记录时,弹出窗口会打开并加载更新页面。但是,在编辑记录一段时间后,突然弹出窗口会打开,但它保持空白并挂起。URL 在地址栏中。

加载 Fiddler 我注意到更新页面的请求从未发送过,这让我相信这是客户端的某种锁定。如果我将弹出窗口中的相同 URL 复制到新的浏览器窗口中,页面通常可以正常加载。

观察: - 由于请求永远不会发送到服务器,它肯定是客户端或浏览器相关的东西。- 仅当网站上有一些看起来很奇怪的流量时才会发生,因为这似乎包含在客户端代码中 - 每隔几秒就会在后台调用一个 Web 服务,检查用户是否登录,但这不会导致冻结。

我在这里真的很茫然。我用谷歌搜索了 WSOD,但似乎与我的特定 WSOD 无关。有任何想法吗?

真正的问题是什么

结果证明内存泄漏(尽管我已经在客户端密封了一些)不是问题。问题是在客户端进行的 Web 服务调用。有一个检查用户是否每 4 秒登录一次(以与另一个窗口同步),然后有 Web 服务调用来获取用户对弹出窗口和网格状态的首选项。根据我的阅读,Web 服务必须是异步的。我通过使用成功/失败回调从 JavaScript 调用它们来假设它们是异步的,但实际上并非如此。从客户端/浏览器的角度来看,它们是异步的,但从服务器端来看,由于连接数量有限,对 Web 服务的调用会在它完成阻止任何其他操作时返回并返回。

那么使 Web 服务方法异步的最简单方法是什么?Web 服务是否需要转换为 WCF Web 服务,或者我可以使用现有的 ASP.NET Web 服务调用吗?

出于历史目的,这就是我最初认为的问题所在:

我无法在本地或我们的测试服务器上重现此内容。但是,我让 Fiddler 来模拟调制解调器的速度,突然间我可以在本地 PC 上复制 WSOD。因此,在打开导致其阻塞的弹出窗口时,至少在我的测试环境中,它似乎是一个缓慢或暂时缓慢的连接。

我在没有附加组件的情况下进行了另一次运行 IE 的测试iexplore.exe -extoff,但最终得到了相同的结果。我还修复了每次 iframe 的 URL 更改时都会重新创建页面上的 iframe 的问题。我的部分逻辑被省略了。现在 iframe 只创建一次。之后,src当我想加载新内容时,只有属性会更新......我的傻瓜。我注意到 JavaScript 闭包中有一些挥之不去的窗口引用,所以现在当我完成它们时,它们在闭包中显式设置为 null。

我还进行了一些内存泄漏调查:-据我所知,我在 DOM 和 JavaScript 或此处提到的其他泄漏模式中没有任何循环引用,http://www.ibm.com/developerworks/web /library/wa-memleak/?S_TACT=105AGX52&S_CMP=cn-a-wa

我的改进都没有解决这个问题。在我的本地测试场景中。有任何想法吗?任何人?任何人?布勒?

最后更新

感谢 David 指出是会话状态导致了 Web 服务中的问题。“ASP.NET 将所有请求排队到同一个‘会话’。因此,如果第一个请求阻塞太久,它将阻止任何其他排队的请求。”

所以我们最终做的是尝试使用会话状态最小化 Web 服务,但我们还添加了 Microsoft 推荐的连接数设置,请参阅http://msdn.microsoft.com/en-us/library/ff647786.aspx #scalenetchapt10_topic9

0 投票
1 回答
906 浏览

wpf - WPF 调试使用 Windows 7 64 位冻结计算机

我在 Windows 7 64 位上使用 Visual Studio 2010。

我编译并运行了一个简单的应用程序,基本上是孩子可以做的事情。那么它开始运行的第二个,它冻结了我的计算机并使其无响应。它每次都针对每个应用程序继续执行此操作。

任何想法为什么会发生这种情况?

0 投票
3 回答
18771 浏览

linux - Linux 进程挂起问题的调试实用程序?

我有一个进行配置管理的守护进程。所有其他进程都应与此守护进程交互以实现其功能。但是当我执行一个大动作时,几个小时后,守护进程会在 2 到 3 小时内无响应。2-3小时后,它可以正常工作。

Linux 进程挂起问题的调试实用程序?

如何获得linux进程挂起的时间?

0 投票
3 回答
1412 浏览

delphi - delphi应用程序冻结整个win7系统

我有一个简单的程序,可以根据每行单词的长度对文本文件进行排序,这个程序在我基于 xp 的旧机器上运行没有问题现在我在我的新 win7/intel core i5 机器上运行这个程序,它冻结整个系统并恢复正常完成后它的工作。

我调查了代码并找到了导致冻结的行

就是这条特定的线...

我已将其更改为

并且没有冻结

然后我把它改成了

它再次冻结

我的程序代码是

知道为什么吗?以及如何解决?我使用德尔福 2007/win32

0 投票
3 回答
1628 浏览

c# - BackgroundWorker 可能导致我的应用程序挂起

我有一个使用 BackgroundWorker 执行一系列测试的表单。我使用 ProgressChanged 事件将消息发送到主线程,然后主线程执行 UI 上的所有更新。我已经梳理了我的代码,以确保我没有对后台工作人员中的 UI 做任何事情。我的代码中没有 while 循环,BackgroundWorker 的执行时间有限(以秒或分钟为单位)。但是,由于某种原因,当我锁定我的计算机时,当我重新登录时,应用程序通常会挂起。问题是,发生这种情况时,BackgroundWorker 甚至都没有运行。我认为它与 BackgroundWorker 相关的原因是因为表单仅在加载应用程序后执行 BackgroundWorker 时挂起(它仅在给定特定用户输入时运行)。

我通过 RunWorkerAsync 方法从 UI 中的 TreeView 向该线程传递了一个 TreeNode 列表,但我只在工作线程中读取这些节点。我对它们所做的任何修改都是通过 progressChanged 事件在 UI 线程中完成的。

我确实在我的工作线程中使用 Thread.Sleep 以定时间隔执行测试(这涉及通过 TCP 套接字发送消息,该套接字不是在工作线程中创建的)。

我对为什么我的应用程序可能会挂起感到完全困惑。我确定我在某处做“非法”的事情,我只是不知道是什么。

0 投票
4 回答
8128 浏览

winapi - Win32:我的应用程序在用户调整窗口大小时冻结

我写了一个win32应用程序。我自己实现了消息循环,如下所示:

我的应用程序中有一个可调整大小的窗口。通常,IdleProcess() 每秒被调用几次。当用户抓住可调整大小窗口的角或边缘时,IdleProcess() 不会再被调用,直到用户释放鼠标按钮。

这里会发生什么?

我尝试用 if 交换内部 while ,但这并没有改变行为。似乎在调整大小开始时,该消息的处理程序在调整大小完成之前不会返回?

有没有办法改变这一点并在每秒调整几次大小期间调用 IdleProcess() ?

谢谢马克

编辑:

我用 if 替换内部 while 的意思是:

我的窗口 Proc 有点长,但我在一个小型测试应用程序中得到了相同的行为。这与 VS 项目向导创建的 wndproc 相同:

0 投票
1 回答
654 浏览

iphone - 如何在 iPhone 中阻止 UI

如何在不使用睡眠的情况下阻止 UI 线程?

只是要明确一点:我知道用户界面会冻结用户,但这就是想法。

我可以运行空的 RunLoops 吗?任何其他方式。

0 投票
2 回答
772 浏览

delphi - Delphi 2010 冻结启动

我已经为测试设置了试用版 Delphi 2010。几天后,它开始并冻结。我只能看到带有“如何购买”的网页和右侧最后编辑的项目。但是 Delphi 的窗口不对任何鼠标事件做出反应。

我试图重新安装和修复它。

所以……我该怎么办?可能是该项目有坏文件或IDE的某些设置不正确?你有什么想法?

0 投票
4 回答
599 浏览

c# - C# 应用程序在 vista/7 上冻结,而不是在 xp/2003 服务器上

我编写了一个在我的 xp 开发机器上运行良好的 C# 应用程序。当我的客户端在不同的 PC 上运行它时,它似乎在 vista 和 7 机器上都冻结了。我想知道在 vista/7 上运行 dotnet 应用程序是否有任何问题。我为框架 2.0 和 3.5 编译了应用程序,但没有帮助。日志文件也没有帮助。有什么方法可以知道应用程序冻结在哪里(当然,客户端没有用于附加到应用程序的 VS)?预先感谢您的任何帮助。

皮埃尔。

0 投票
3 回答
558 浏览

iphone - 如何更快地将 UIViewController 推入 UINavigationController

我有一个基于多视图的应用程序,问题是当我推送一个 UIViewController 时,设备(仅当我在真实设备上测试它时)冻结一两秒钟,我不知道为什么会发生这种情况,因为推送了 UIViewController只有一个 UITextField 和一个按钮。这仅在第一次推送视图时发生,在此推送之后视图是平滑的。

关于如何避免这种情况的任何想法?