【发布时间】:2012-06-18 18:26:12
【问题描述】:
我有一个桌面 vb6 应用程序,它正在加载到 webbrowser 中,控制在远程网站上生成的 asp.net 网页。 在这个网页上有一个标签和一个按钮。 该标签由网站上 Access 数据库中的文本填充。
在 asp.net page_load 过程中有一个函数(在循环中)从数据库返回数据,而返回的值是一个空字符串,循环重复。 因此,如果没有数据,大约每 2 分钟会有一次超时。 由于 vb6 应用程序对网页的调用本身是在一个循环中,因此网页会再次被调用
如果有数据,则 page_load 完成。 然后 vb6 应用程序单击该按钮。 然后,按钮的单击事件处理程序中的服务器端代码将相关的数据库条目编辑为空字符串。 这应该意味着 vb6 应用程序在下一次调用时不应获得相同的数据,但发生的情况是在数据库中清除数据之前,数据可能会在连续调用中发送 1、2、3、4.. 次。
单击按钮后,我在 vb6 应用程序中延迟了 0.5 秒,然后一切正常。
谁能解释一下为什么会这样?
【问题讨论】:
-
需要更多细节,如代码示例,您还应该提及您试图通过此技术解决的问题,您可能会得到很好的建议。
-
虽然我无法解决问题,但可能是您的 VB6 循环在您的最后一个 Web 请求完成之前加载了页面。
-
@bjan 非常感谢您建议我发布代码。在整理它以使它看起来像;)我发现在子'WebBrowser1_DocumentComplete'内设置为true的变量'PageFinished'在按钮单击之前没有被设置为false,这反过来意味着我没有等待要完成的请求。呃!!对不起,我不能投票给你,如果你发布答案,我会接受。这样做的目的是尝试实现长轮询,以便可以从网页控制本地 vb6 应用
-
没关系,您将您的发现作为答案发布并接受它:)