我在vb中有一个简单的计时器方法,它目前什么都不做,只是滴答作响。但是,一旦它完成,页面上的所有其他代码就会停止工作。
作为一个例子,我的页面上有图像按钮,可以将控件添加到静态占位符。
btnCreate.Text = "Create"
btnCreate.ID = "btnCreateSpecialNotes"
AddHandler btnCreate.Click, AddressOf btnCreateSpecialNotes_Click
plhCreateSpecialNotes.Controls.Add(btnCreate)
因此,如果没有timer.tick方法,那么(连同其他未包含的代码)将按预期启动并按照我想要的方式启动,但是当timer.tick发生时,所有类型的冻结都没有效果。
我的计时器设置如下
<asp:Timer ID="specialNotesTimer" runat="server" Interval="2000" ontick="specialNotesTimer_Tick"></asp: Timer>
并在后面的代码中......
Protected Sub specialNotesTimer_Tick(Byval sender as object, Byval e as eventArgs) Handles specialNotesTimer.Tick
'Do things to the page
End Sub
答案 0 :(得分:2)
免责声明:我从未使用过System.Web.UI.Timer类。
我认为客户端javascript代码和服务器端C#代码之间可能存在一些混淆。
在阅读MSDN之后,似乎Timer控件每2000毫秒启动一次完整的回发(2秒,因为你上面这么说)。这只能在javascript中完成,并且需要一个服务器端事件处理程序,它将在服务器上执行某些任务(你称之为specialNotesTimer_Tick)。
现在,如果此任务执行的时间超过2秒,我会假设您永远不会在网页上看到任何信息,因为它会不断回发(回发?)并刷新屏幕。
建议:
希望这有帮助。
答案 1 :(得分:-1)
我认为我在这里遇到的主要问题是我的HTML流程没有结束。我慢慢地从头开始重新启动我的页面,虽然我使用了几乎相同的代码,但我只检查了所有关闭标签以及html中的内容,这似乎解决了问题本身。
我很抱歉没有更深入的答案,但我仍然不明白为什么我的旧代码在这里不起作用,但是从一个方块重新做我的页面对我来说很有用。