先来说说C#中加载顺序的问题,相信大多数人都是知道的。
- .net中后台的Page_Load方法肯定是先执行的
- 然后再执行页面中Html部分,包括head和body两部分---切记嵌在Html中的JS脚本也是会按上下顺序依次执行的,同时也解释了全局变量的作用(因为我《全局变量》是最先执行的,定义的)
这个截图中最先弹窗是“页面最初的”,然后是“中间的”。
- 然后再执行页面中JS脚本中document.ready部分
那么我们知道了页面的执行顺序后,我们就可以来判断一下页面某个元素是否改变(只是简单的判断)
- 我们定义一个全局变量。
- 正常情况下我们判断页面元素值是否修改时在编辑界面进行的。那么我们可以这样在页面初始化时(肯定会给编辑页面的某些标签赋值的,赋值的同时我们可以给当初我们定义的全局变量也赋值,通常这些动作都是在Page_Load中执行的,那我们也可以在后台注册一段JS脚本来给那个全局变量赋值)
- 在页面提交时取判断用户新输入的值和原值(即定义的全局变量)是否相同
在这里提到了后台注册JS脚本的问题,有两种方法:
RegisterStartupScript
和
RegisterClientScriptBlock,这两者最大的区别在于
RegisterStartupScript 把script放置在 ASP.NET page的底部,而RegisterClientScriptBlock把script放置在ASP.NET page的顶部。
简单举个例子来说明下:
,然后呢,在页面中哪个位置呢,如下图
通过这两张图我们就很明显了。