【发布时间】:2019-10-25 01:33:44
【问题描述】:
Javascript 可以禁用 UserControl 中的 ASP.net 控件吗?我的 Javascript 文件是从 MasterPage 调用的,我也从 ContentPage 尝试过。
我正在尝试使用 Javascript 作为空闲计时器来减少服务器回发,而无需注销用户。当用户重新关注窗口时,计时器会重新启动并再次刷新,直到用户空闲 30 分钟并暂停 ASP.Net 计时器。
Javascript:
var timer = $find('<%= TimerAutoRefresh.ClientID %>');
if (timer) {
//stop the timer
timer._stopTimer();
timer.set_enabled(false);
console.log("Timer disabled: " + timer);
}
ASP.net ASCX
<asp:UpdatePanel ID="UpdatePanel" runat="server">
<ContentTemplate>
<asp:Timer ID="TimerAutoRefresh" runat="server" Interval="5000" Enabled="true"></asp:Timer>
<asp:Literal ID="LiteralTest" runat="server">Timestamp</asp:Literal>
</ContentTemplate>
</asp:UpdatePanel>
我已经尝试过 $find 和 document.getElementById 并且无法获得 ID。当我使用 ClientIDMode="Static" 时,页面无法每 5 秒刷新一次,因为它会执行完整的回发。
【问题讨论】:
-
我是否可以建议您尝试重新编写代码以使用 SignalR (codeproject.com/Articles/526876/…)?它将向用户打开一个套接字,将更新所有需要的数据,并且可以设置为在一定时间后断开连接。我知道这意味着很大的返工,但它可能是值得的。其他建议是让更新面板更小,确保只发送非常需要的数据(数字或字符串),而不是一大堆 html 和 css。
标签: javascript asp.net user-controls