在asp.net页面自动生成的JS代码中看到了这样的代码:if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
theform = document.forms["Form1"];
}
else {
theform = document.Form1;
}
从代码来看,应该是判断如果是网景浏览器,就执行theform = document.forms["Form1"]; 否则就执行else中的内容。
应该是为了解决浏览器差异而写的,但是我做了测试:
写一个JS方法
function doTest()
{
alert(document.forms["form1"]);
alert(document.form1);
}
再用一个按钮来调用它
<input id="ButtonTest" type="button" value="DifferentTest" onclick="doTest()"/>在IE中执行这个测试,谈出了两次Object,也就是说两种方式都能获取到form1,那么为什么在asp.net中还要自动生成判断是否为网景浏览器的代码呢?恳请指点!
theform = document.forms["Form1"];
}
else {
theform = document.Form1;
}
从代码来看,应该是判断如果是网景浏览器,就执行theform = document.forms["Form1"]; 否则就执行else中的内容。
应该是为了解决浏览器差异而写的,但是我做了测试:
写一个JS方法
function doTest()
{
alert(document.forms["form1"]);
alert(document.form1);
}
再用一个按钮来调用它
<input id="ButtonTest" type="button" value="DifferentTest" onclick="doTest()"/>在IE中执行这个测试,谈出了两次Object,也就是说两种方式都能获取到form1,那么为什么在asp.net中还要自动生成判断是否为网景浏览器的代码呢?恳请指点!
但我觉得document.forms["form1"]是从直接指定从所有的forms数组里面找form1,而document.form1是从全部的document中来找,应该效率更低才对啊?继续求解中
好象没什么不同吧,好象效率也一样吧.
document.forms["form1"]遍历两次
document.forms["form1"]遍历两次
深一步理解,想想在新华字典中查“仁”这个字:
从整本字典中找“仁”(遍历一次)
从索引中先找单人旁(相当于数组),再找“仁”这个字(遍历两次)
可是遍历两次却比遍历一次要快!但是这种情况是针对在很多内容中进行归类查找时而用
而本问题是针对当前页面而言,一个单页面的元素内容并不会很多,相当于一个作坊中直接找某某负责人会很快,而不需要像酒店那样分门别类的从管理名单中去找,直接找会更快!
今天是春节结贴,回答的人每人有分,祝大家新年快乐!也祝自己今年Find一个好工作!