如何在c#中使用HtmlTextWritter延迟JavaScript文件的最后加载

本文关键字:JavaScript 延迟 文件 加载 最后 HtmlTextWritter | 更新日期: 2023-09-27 18:04:05

我有一个web部件,我已经创建了显示一些模拟时钟与用户指定的任何时区。我遇到的问题是,我的时钟有时会加载,有时不会。我认为我的问题在于我的js文件的加载顺序。我有js加载在我的web部件代码中的OnLoad事件,我的clock.js文件(构建时钟的文件)在我的代码给出UTC时间+偏移量定义之前先运行。

下面是显示时钟的代码:

protected override void Render(HtmlTextWriter output)
    {
    base.Render(output);

var skins = this._ClockSkins.ToString();
output.Write("<table align='"center'"><tr>");
for (int i = 0; i < 6; i++)
{

output.RenderBeginTag(HtmlTextWriterTag.Script);
output.AddAttribute(HtmlTextWriterAttribute.Type, "text/javascript");
//output.Write("var time;");
output.Write("function LoadTrigger() {");
output.Write("document.write('<span><div width='"90px'"><td width='"90px'" valign='"top'" align='"center'" ><canvas class='"CoolClock:" + skins + "'" id='"[" + i + "]'" ></canvas></td></div></span>');");
output.Write("}");
output.Write("window.onload = LoadTrigger();");
//output.Write("window.setTimeout('"LoadTrigger()'", 1000);");
output.RenderEndTag();
//output.Write("<script defer='"defer'" type='"text/javascript'">document.write     ('<span><div width='"90px'"><td width='"90px'" valign='"top'" align='"center'" ><canvas class='"CoolClock:" + skins + "'" id='"[" + i + "]'" ></canvas></td></div></span>');</script>");
}
output.Write("</tr></table>");

}
}

现在,有时时钟将呈现良好,有时我将有我的模拟时钟的外壳,没有分针或秒针(这些是根据它所设置的时区呈现的)。从我注释掉的代码中可以看到,我尝试了几种不同的方法来使其正常工作。关于为什么我的时钟有时工作,如果我刷新页面几次,他们会工作的任何建议。

如何在c#中使用HtmlTextWritter延迟JavaScript文件的最后加载

你可以用

setTimeout(function(){
  document.write("<script type='text/javascript' src='clock.js'></script>
");
}, 1000);

延迟在页面中写入此内容。

如果你正在调用一个js文件,你能实际使用JQuery吗?如果你能够将JQuery添加到.js文件中,那么你可以使用以下命令:

$(文档)时(函数(){…你的东西……});