JavaScript项目框架

分享于 

2分钟阅读

Web开发

  繁體 雙語

介绍

本文将介绍框架的项目管理部分。

Background

继承了一个实现母版页的ASP.NET 项目之后,我很难在服务器端请求客户端 using。 有些开发需要重 DHTML,而在使用 iNamingContainer 时,访问服务器呈现控件的操作要容易得多。

代码

下面是项框架的代码:

var ctlHolder = function(id, ctl) {
 this.ID = id;
 this.Ctl = ctl;
}var ctlDef = function() {
 this.Items = new Array();
 this.Add = function(item) { this.Items[this.Items.length] = item; };
 this.Get = function(id) {
 for (var obj inthis.Items)
 if (this.Items[obj].ID == id)
 returnthis.Items[obj].Ctl;
 returnnull;
 }
 this.EndID = function(id) {
 var index = id.lastIndexOf('$');
 if (index == -1)
 return id;
 elsereturn id.substring(index + 1);
 }
}var ctl = new ctlDef();function catalogItems(items) {
 if (items == null) items = document.getElementsByTagName('html');
 for (var obj in items) {
 var item = items[obj];
 if (item.id)
 ctl.Add(new ctlHolder(ctl.EndID(item.id), item));
 if (item.childNodes)
 catalogItems(item.childNodes);
 }
}

当页面加载时需要调用" catalogItems"函数。 可以通过将以下属性添加到 body 元素来实现这里目的:

onload="catalogItems(null);"

这里代码运行非常迅速的解析和编目,在 0.1秒内呈现 300K 个 HTML。 完成这里操作后,可以替换复杂的元素引用,例如:

document.getElementById('ctl_001$ctl_content1$txtUsername')

使用:

ctl.Get('txtUsername');

相关文章