C# 从后台代码同步或异步注册Javascript到页面之RegisterStartupScript和RegisterClientScriptBlock的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 从后台代码同步或异步注册Javascript到页面之RegisterStartupScript和RegisterClientScriptBlock的区别相关的知识,希望对你有一定的参考价值。

下面来讲讲同步注册JS和异步注册JS的区别

同步注册JS:RegisterClientScriptBlock,相当于在 form开始处(紧接 <form runat="server"> 标识之后)发送脚本块,在html节点还没加载的时候就可以先注册JS了

异步注册JS:RegisterStartupScript,在 form结尾处(在 </form> 标识之前)发送脚本块,在document装载完成后会执行,等价于body.onload=f(){}里的内容,要等HTML节点元素渲染完成之后再加载JS

 

string script = "var iSetEditInputRealOnly;function SetEditInputRealOnly(){$(‘input[type=text],textarea,select‘).attr(‘disabled‘,‘disabled‘);$(‘table[class=edittable][projectcurrencyexchangerate=1]‘).find(‘img‘).hide();$(‘table[class=edittable][projectcurrencyexchangerate=1]‘).find(‘tr[class=head]‘).find(‘div‘).eq(0).hide();$(‘#ctl00_body_CycleAndScenario_ddlCycle,#ctl00_body_CycleAndScenario_ddlScenario‘).removeAttr(‘disabled‘);if($(‘table[class=edittable][projectcurrencyexchangerate=1]‘).find(‘img‘).length>0){clearInterval(iSetEditInputRealOnly)}$(‘input[type=submit]‘).click(function(event){$(‘#divImgWait‘).hide();event.preventDefault()})}$(document).ready(function(){iSetEditInputRealOnly=setInterval(‘SetEditInputRealOnly()‘,1000)});";
               
                //异步注册javascript
                System.Web.UI.ScriptManager.RegisterStartupScript(Context.Page, ((SysPage)Context.Page).GetType(), Guid.NewGuid().ToString(), script, true);
                //同步注册JavaScript
                Page.ClientScript.RegisterClientScriptBlock(Context.Page, ((SysPage)Context.Page).GetType(), Guid.NewGuid().ToString(), script, true);

 

以上是关于C# 从后台代码同步或异步注册Javascript到页面之RegisterStartupScript和RegisterClientScriptBlock的区别的主要内容,如果未能解决你的问题,请参考以下文章

javascript中事件处理程序的异步或同步调用

javascript的异步概念

javascript中异步,同步解析

JavaScript 异步操作之回调函数

各类技术学习笔记

javascript 承诺异步或同步