自实行函数:自动实施的函数。它在被演讲时就早就在运作了。一般函数都以在被调用时才会施行的。
自实施函数的貌似格式:(function() { 函数体 })();
再者,自实行函数中貌似都会有二个function() {}方式的无名氏函数。

复制代码 代码如下:

在自己那边,笔者选用将xml直接转变为json,以便后续javascript应用的管理。作者使用.net平台塑造轻巧的webservice。
Request.asmx

下边包车型地铁代码在window对象中开创二个命名空间
mySpace,并把自实行函数中的方法封装在mySpace命名空间之下,以便于我们调用这一个自实践函数中的一些成效。

<script type=”text/javascript”>
document.getElementById(“testDiv”).innerHTML =”动态创制的div”;
</script>

复制代码 代码如下:

复制代码 代码如下:

並且用的应当是如故痴迷,不过有些许人清楚这是一无所长的做法!错误的因由:
(1) 在页面加载时改换了页面包车型大巴结构.
在IE6中只要互连网变慢或然页面内容太大就能产出”终止操作”的错误.
也正是说”长久不要在页面加载时退换页面的Dom模型”.
(2) 使用修改HTML内容添港元素, 不吻合Dom规范.
在实际职业中也境遇过使用这种办法修改内容后,
有个别浏览器中并不可能即时展现增多的因素, 因为不相同浏览器的展现引擎是例外的.
然而只要大家采纳Dom的CreateElement成立对象, 在具备的浏览器中差不离都得以.
可是在jQuery中要是传入的而是叁个完好的HTML字符串, 内部也是应用innerHTML.
所以亦非一点一滴否定innerHTML函数的使用.所以在此以前些天开始请丢弃这种旧文化,
使用上边介绍的不利方法编制程序.
有关利用HTML DOM创制作而成分本文不做详细介绍,
上边举三个简短的事例:第一种科学方法:

using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Drawing;
using System.Drawing.Imaging;
namespace NightKidsServices
{
/// <summary>
/// Service1 的摘要表明
/// </summary>
[WebService(Namespace = “]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
public class TestService :WebService
{
private static int picNum = -1;
[WebMethod]
public Resource GetResource()
{
return Resource.CreateResource(“pic2”, “asdfasd”, 0);
}
[WebMethod]
public string HelloWorld()
{
return “Hello”;
}
[WebMethod]
public byte[] GetPic()
{
picNum = (picNum + 1) % 32;
Image image = Image.FromFile(this.Server.MapPath(“jpeg/” +
(picNum+1).ToString() + “.bmp”));
MemoryStream mem=new MemoryStream();
image.Save(mem, ImageFormat.Jpeg);
return mem.GetBuffer();
}
[WebMethod]
public List<Resource> GetResourceList()
{
return new List<Resource>(new Resource[] {
Resource.CreateResource(“pic1”, “jpeg/1.bmp”,
0),Resource.CreateResource(“pic2”, “jepg/2.bmp”, 0),
Resource.CreateResource(“pic3”, “jpeg/3.bmp”, 0),
Resource.CreateResource(“pic4”, “jepg/4.bmp”, 0) });
}
}

(function() {
//依照id获取对象
function $(id) { return document.getElementById(id); }

复制代码 代码如下:

如上只是四个简短的测量试验使用,便于后续使用javascript管理分化品类的数码
对此javascript,确定是使用xmlhttprequest对象来做客服务器端的,可是这里为了简单,小编未曾思量包容性难题,直接利用xmlhttprequest对象(笔者动用chrome浏览器作为测量检验浏览器),为此作者使用AjaxClient类来张开http操作(Post
方法),WebService类来封装管理webservice(调用AjaxClient类作为操作类),JsonConverter类管理xml数据转变为json数据
common.js(包含JsonConverter类)

//内部函数,在外围是不得以调用的
function _setStyle(id, styleName, styleValue) {
$(id).style[styleName] = styleValue;
}

//使用Dom标准创设成分
var select = document.createElement(“select”);
select.options[0] = new Option(“加载项1”, “value1”);
select.options[1] = new Option(“加载项2”, “value2”);
select.size = “2”;
var object = testDiv.appendChild(select);

复制代码 代码如下:

//创制伪命名空间
window.mySpace = {};

透过利用 document.createElement 方法大家得以创制Dom成分,
然后经过appendChild方法为增加到钦定对象上.
第二种方式: 使用Jquery
当HTML字符串是未曾质量的成分是, 内部使用document.createElement创建成分,
比如:

// JavaScript Document
function $(id)
{
return document.getElementById(id);
}
function GetXmlHttp()
{
if(window.XMLHttpRequest)
return new XMLHttpRequest();
}
var JsonConverter={};
JsonConverter.FlagStack=[];
JsonConverter.ConvertFromXML=function(xmlRootNode)
{
if(!xmlRootNode)
return;
var converter={};
converter.render=function(node,isArrayElement)
{
var returnStr=”;
var isArray=false;
if(node.childNodes.length==1)
{
returnStr+=node.nodeName+’:’ + “‘” + node.firstChild.nodeValue + “‘” ;
if(node==xmlRootNode)
returnStr='{‘ + returnStr + ‘}’;
return returnStr;
}
isOneNode=false;
if(node.nodeName.match(“ArrayOf*”))
isArray=true;
if(isArray)
returnStr+='[‘;
else
{
returnStr+='{‘;
if(!(isArrayElement || xmlRootNode==node))
returnStr=node.nodeName + ‘:’ + returnStr;
}
for(var i=1;i<node.childNodes.length;i+=2)
{
returnStr+=this.render(node.childNodes[i],isArray) + ‘,’;
}
returnStr=returnStr.slice(0,-1);
if(isArray)
returnStr+=’]’;
else
returnStr+=’}’;
return returnStr;
}
//alert(converter.render(xmlRootNode));
return eval(‘(‘ + converter.render(xmlRootNode) + ‘)’);
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注