之前的清除方式已無法使用,
BACKUP 這個指令在2008已被停用,
目前找的到解決方法如下
DBCC SHRINKFILE (log_filename,size)
注意:需先將資料庫的模式改為-簡單DBCC SHRINKFILE (ERP_log,2)將交易記錄檔的大小壓縮到指定的大小
MircosoftTechNet-DBCC SHRINKFILE
清除MS交易記錄檔 (2005之前版本適用)
之前的清除方式已無法使用,
BACKUP 這個指令在2008已被停用,
目前找的到解決方法如下
DBCC SHRINKFILE (log_filename,size)
注意:需先將資料庫的模式改為-簡單DBCC SHRINKFILE (ERP_log,2)將交易記錄檔的大小壓縮到指定的大小
MircosoftTechNet-DBCC SHRINKFILE
清除MS交易記錄檔 (2005之前版本適用)
安裝 :
還在揮汗徒手安裝程式庫? 試試NuGet吧 by 黑暗執行緒
設定:
ELMAH On IIS6 by Rico 技術農場(內含如何將Log訊息匯出至txt檔或SQL裡)
ELMAH On IIS7.5 by Rico 技術農場
來源網址:http://www.okajax.com/a/200811/110X1362008.html 在jQuery中利用AJAX加载XML数据并解析--Ajax中国
1,Content-Type
很多时候无法解析就是Content-Type的问题。
如果本身就是xml文件,请跳过这一步
动态生成的XML一定要将其设置为text/xml,否则默认就是text/html也就是普通的文本了。
常见语言的Content-Type设置
header("Content-Type:text/xml"); //php
response.ContentType="text/xml" //asp
response.setHeader("ContentType","text/xml"); //jsp
2,xml结构。
XML一定要封闭的,很重要!
例:
错误的XML
<?xml version="1.0" encoding="UTF-8"?>
<name>zhangsan</name>
<id>1</id>
<name>lisi</name>
<id>2</id>
來源網址:http://www.cnblogs.com/QLeelulu/archive/2008/04/20/1163021.html -- jQuery Ajax 全解析 - Q.Lee.lulu - 博客园
jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯。
废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封装以方便我们使用的方法,当然,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()的(这个后面会说到).
1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中。
url (String) : 请求的HTML页的URL地址。
data (Map) : (可选参数) 发送至服务器的 key/value 数据。
callback (Callback) : (可选参数) 请求完成时(不需要是success的)的回调函数。
这个方法默认使用 GET 方式来传递的,如果[data]参数有传递数据进去,就会自动转换为POST方式的。jQuery 1.2 中,可以指定选择符,来筛选载入的 HTML 文档,DOM 中将仅插入筛选出的 HTML 代码。语法形如 "url #some > selector"。
这个方法可以很方便的动态加载一些HTML文件,例如表单。
示例代码:
$(".ajax.load").load("http://www.cnblogs.com/QLeelulu/archive/2008/03/30/1130270.html .post", function (responseText, textStatus, XMLHttpRequest){ this;//在这里this指向的是当前的DOM对象,即$(".ajax.load")[0] //alert(responseText);//请求返回的内容 //alert(textStatus);//请求状态:success,error //alert(XMLHttpRequest);//XMLHttpRequest对象 });
注:不知道为什么URL写绝对路径在FF下会出错,知道的麻烦告诉下。下面的get()和post()示例使用的是绝对路径,所以在FF下你将会出错并不会看到返回结果。还有get()和post()示例都是跨域调用的,发现传上来后没办法获取结果,所以把运行按钮去掉了。
2. jQuery.get( url, [data], [callback] ):使用GET方式来进行异步请求
参数:
url (String) : 发送请求的URL地址.
data (Map) : (可选) 要发送给服务器的数据,以 Key/value 的键值对形式表示,会做为QueryString附加到请求URL中。
callback (Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)。
这是一个简单的 GET 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。示例代码:
$.get("./Ajax.aspx", {Action:"get",Name:"lulu"}, function (data, textStatus){ //返回的 data 可以是 xmlDoc, jsonObj, html, text, 等等. this; // 在这里this指向的是Ajax请求的选项配置信息,请参考下图 alert(data); //alert(textStatus);//请求状态:success,error等等。
当然这里捕捉不到error,因为error的时候根本不会运行该回调函数 //alert(this); }); 点击发送请求:
jQuery.get()回调函数里面的 this ,指向的是Ajax请求的选项配置信息:
3. jQuery.post( url, [data], [callback], [type] ) :使用POST方式来进行异步请求
参数:
url (String) : 发送请求的URL地址.
data (Map) : (可选) 要发送给服务器的数据,以 Key/value 的键值对形式表示。
callback (Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)。
type (String) : (可选)官方的说明是:Type of data to be sent。其实应该为客户端请求的类型(JSON,XML,等等)
这是一个简单的 POST 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。示例代码:
Ajax.aspx:
Response.ContentType = "application/json"; Response.Write("{result: '" + Request["Name"] + ",你好!(这消息来自服务器)'}");jQuery 代码:
$.post("Ajax.aspx", { Action: "post", Name: "lulu" }, function (data, textStatus){ // data 可以是 xmlDoc, jsonObj, html, text, 等等. //this; // 这个Ajax请求的选项配置信息,请参考jQuery.get()说到的this alert(data.result); }, "json"); 点击提交:
这里设置了请求的格式为"json":
如果你设置了请求的格式为"json",此时你没有设置Response回来的ContentType 为:Response.ContentType = "application/json"; 那么你将无法捕捉到返回的数据。
注意一下,alert(data.result); 由于设置了Accept报头为“json”,这里返回的data就是一个对象,并不需要用eval()来转换为对象。
4. jQuery.getScript( url, [callback] ) : 通过 GET 方式请求载入并执行一个 JavaScript 文件。
参数
url (String) : 待载入 JS 文件地址。
callback (Function) : (可选) 成功载入后回调函数。
jQuery 1.2 版本之前,getScript 只能调用同域 JS 文件。 1.2中,您可以跨域调用 JavaScript 文件。注意:Safari 2 或更早的版本不能在全局作用域中同步执行脚本。如果通过 getScript 加入脚本,请加入延时函数。
这个方法可以用在例如当只有编辑器focus()的时候才去加载编辑器需要的JS文件.下面看一些示例代码:
加载并执行 test.js。jQuery 代码:
$.getScript("test.js");
加载并执行 AjaxEvent.js ,成功后显示信息。
jQuery 代码:
$.getScript("AjaxEvent.js", function(){ alert("AjaxEvent.js 加载完成并执行完成.你再点击上面的Get或Post按钮看看有什么不同?"); });
加载完后请重新点击一下上面的 Load 请求看看有什么不同。
jQuery Ajax 事件
Ajax请求会产生若干不同的事件,我们可以订阅这些事件并在其中处理我们的逻辑。在jQuery这里有两种Ajax事件:局部事件 和 全局事件。
局部事件就是在每次的Ajax请求时在方法内定义的,例如:
$.ajax({ beforeSend: function(){ // Handle the beforeSend event }, complete: function(){ // Handle the complete event } // ... }); 全局事件是每次的Ajax请求都会触发的,它会向DOM中的所有元素广播,在上面 getScript() 示例中加载的脚本就是全局Ajax事件。全局事件可以如下定义:
$("#loading").bind("ajaxSend", function(){ $(this).show(); }).bind("ajaxComplete", function(){ $(this).hide(); }); 或者:
$("#loading").ajaxStart(function(){ $(this).show(); }); 我们可以在特定的请求将全局事件禁用,只要设置下 global 选项就可以了:
$.ajax({ url: "test.html", global: false,// 禁用全局Ajax事件. // ... }); 下面是jQuery官方给出的完整的Ajax事件列表:
具体的全局事件请参考API文档。
好了,下面开始说jQuery里面功能最强的Ajax请求方法 $.ajax();
jQuery.ajax( options ) : 通过 HTTP 请求加载远程数据
这个是jQuery 的底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。
$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该对象,但特殊情况下可用于手动终止请求。
注意: 如果你指定了 dataType 选项,请确保服务器返回正确的 MIME 信息,(如 xml 返回 "text/xml")。错误的 MIME 类型可能导致不可预知的错误。见 Specifying the Data Type for AJAX Requests 。
当设置 datatype 类型为 'script' 的时候,所有的远程(不在同一个域中)POST请求都回转换为GET方式。
$.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息。详细参数选项见下。
jQuery 1.2 中,您可以跨域加载 JSON 数据,使用时需将数据类型设置为 JSONP。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。数据类型设置为 "jsonp" 时,jQuery 将自动调用回调函数。(这个我不是很懂)
参数列表:
参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址。 type String (默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET"。注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。 timeout Number 设置请求超时时间(毫秒)。此设置将覆盖全局设置。 async Boolean (默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。 beforeSend Function 发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。XMLHttpRequest 对象是唯一的参数。function (XMLHttpRequest) { this; // the options for this ajax request }cache Boolean (默认: true) jQuery 1.2 新功能,设置为 false 将不会从浏览器缓存中加载请求信息。 complete Function 请求完成后回调函数 (请求成功或失败时均调用)。参数: XMLHttpRequest 对象,成功信息字符串。
function (XMLHttpRequest, textStatus) { this; // the options for this ajax request }contentType String (默认: "application/x-www-form-urlencoded") 发送信息至服务器时内容编码类型。默认值适合大多数应用场合。 data Object,
预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息返回 responseXML 或 responseText,并作为回调函数参数传递,可用值:
"xml": 返回 XML 文档,可用 jQuery 处理。
"html": 返回纯文本 HTML 信息;包含 script 元素。
"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。
"json": 返回 JSON 数据 。
"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
error Function (默认: 自动判断 (xml 或 html)) 请求失败时将调用此方法。这个方法有三个参数:XMLHttpRequest 对象,错误信息,(可能)捕获的错误对象。
function (XMLHttpRequest, textStatus, errorThrown) { // 通常情况下textStatus和errorThown只有其中一个有值 this; // the options for this ajax request }global Boolean (默认: true) 是否触发全局 AJAX 事件。设置为 false 将不会触发全局 AJAX 事件,如 ajaxStart 或 ajaxStop 。可用于控制不同的Ajax事件 ifModified Boolean (默认: false) 仅在服务器数据改变时获取新数据。使用 HTTP 包 Last-Modified 头信息判断。 processData Boolean (默认: true) 默认情况下,发送的数据将被转换为对象(技术上讲并非字符串) 以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。 success Function 请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态
function (data, textStatus) { // data could be xmlDoc, jsonObj, html, text, etc... this; // the options for this ajax request }
这里有几个Ajax事件参数:beforeSend ,success ,complete ,error 。我们可以定义这些事件来很好的处理我们的每一次的Ajax请求。注意一下,这些Ajax事件里面的 this 都是指向Ajax请求的选项信息的(请参考说 get() 方法时的this的图片)。
请认真阅读上面的参数列表,如果你要用jQuery来进行Ajax开发,那么这些参数你都必需熟知的。
$.ajax({ type: "get", url: "http://www.cnblogs.com/rss", beforeSend: function(XMLHttpRequest){ //ShowLoading(); }, success: function(data, textStatus){ $(".ajax.ajaxResult").html(" "); $("item",data).each(function(i, domEle){ $(".ajax.ajaxResult").append("<li>"+$(domEle).children("title").text()+"</li>"); }); }, complete: function(XMLHttpRequest, textStatus){ //HideLoading(); }, error: function(){ //请求出错处理 } });
这里将显示首页文章列表。
其他
jQuery.ajaxSetup( options ) : 设置全局 AJAX 默认选项。
设置 AJAX 请求默认地址为 "/xmlhttp/",禁止触发全局 AJAX 事件,用 POST 代替默认 GET 方法。其后的 AJAX 请求不再设置任何选项参数。
jQuery 代码:
$.ajaxSetup({ url: "/xmlhttp/", global: false, type: "POST" }); $.ajax({ data: myData });
serialize() 与 serializeArray()
serialize() : 序列表表格内容为字符串。
serializeArray() : 序列化表格元素 (类似 '.serialize()' 方法) 返回 JSON 数据结构数据。
示例:
HTML代码:
<p id="results"><b>Results: </b> </p> <form> <select name="single"> <option>Single</option> <option>Single2</option> </select> <select name="multiple" multiple="multiple"> <option selected="selected">Multiple</option> <option>Multiple2</option> <option selected="selected">Multiple3</option> </select><br/> <input type="checkbox" name="check" value="check1"/> check1 <input type="checkbox" name="check" value="check2" checked="checked"/> check2 <input type="radio" name="radio" value="radio1" checked="checked"/> radio1 <input type="radio" name="radio" value="radio2"/> radio2 </form>
serializeArray() 结果为:
一些资源
一个jQuery的Ajax Form表单插件:http://www.malsup.com/jquery/form/
一个专门生成Loading图片的站点:http://ajaxload.info/ 大家觉得那些Loading比较炫的可以在这里跟帖晒一下,方便大家取用,嘎嘎
文章來源: http://blog.darkthread.net/post-2009-03-11-js-this-and-closure.aspx Javascript - 淺談this與Closure - 黑暗執行緒
網友kink問了一個問題:
$.fn.wait = function(time, type) {
time = time || 1000;
type = type || "fx";
return this.queue(type, function() {
var bb = this;
setTimeout(function() {
$(bb).dequeue();
}, time);
});
};
來源網址:http://www.dotblogs.com.tw/topcat/archive/2010/12/02/19866.aspx -opcat 姍舞之間的極度凝聚- 點部落
最近剛好有網友詢問這個問題,當我們要把我們的系統上線,可以直接把原始碼放到Server上,也可以先行【建置→發行】,再將發行後的aspx+dll放到主機中。到底這兩個方式有什麼不同??運作速度、安全性、維護方便性到底如何呢??小喵就小喵所知道的,分享給各位網友們。
來源網址:http://www.dotblogs.com.tw/topcat/archive/2010/12/07/19959.aspx - topcat 姍舞之間的極度凝聚
緣起
有位網友在小舖裡面小喵的留言板中提到這個問題,這個問題其實只要一些小技巧,並不難。所以小喵在此作兩個方式的範例,一個是用LinkButton搭配JavaScript讓TextBox OnBlur時可以等同按下LinkButton去檢查;另一個方式是使用jQuery的Ajax的方式。
本篇主要介紹利用LinkButton是透過JavaScript進行PostBack的特性,把它應用在TextBox在Client端的OnBlur事件中。有相同需求的人可以參考看看。
來源網址:http://tc.wangchao.net.cn/bbs/detail_1733108.html --xmlHTTP xmlDOC 與 C#中DataSet的結合 實現AJAX簡單示例 - 王朝網絡
本例包括
1.客戶端用xmlHTTP 向服務器頁面發送請求
2.服務器頁面後台用C#中DataSet實現數據庫的操作 並得到結果
3.客戶端用xmlDOC 得到xmlHTTP返回的結果 並對結果進行操作
附錄
XMLHTTP的常用方法和屬性
XMLDOC的常用方法和屬性
=========================
發送xmlHttp請求到服務器端
=========================
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("GET","Default2.aspx",false,"","");
xmlhttp.send();
======================
服務器端的相關數據處理
======================
protected void Page_Load(object sender, EventArgs e)
{
//連接數據庫
SqlConnection myConn = new SqlConnection("Data Source=192.168.0.36;Initial Catalog=Northwind;User ID=sa;Password=sa");
SqlDataAdapter myda = new SqlDataAdapter("select top 5 * from orders", myConn);
DataSet myds = new DataSet();
myConn.Open();
myda.Fill(myds);
myConn.Close();
// 把xml對象發送給客戶端
Response.ContentType = "text/xml";
Response.Write(myds.GetXml());
Response.End();
}
=============================================
xmlDOC 得到xmlHTTP返回的結果 並對結果進行操作
=============================================
// 從服務器得到處理後的xml對象
var xmldom = new ActiveXObject("Microsoft.XMLDOM");
xmlhttp.responseXML.createProcessingInstruction("xml"," version=\"1.0\" encoding=\"gb2312\"");
xmldom = xmlhttp.responseXML.documentElement;
//alert(xmldom.xml);
// 通過xmldom操作結果
var length = xmldom.getElementsByTagName("OrderID").length;
alert(length);
-----------------------------------附 錄----------------------------------
以下內容 摘錄于網上 對原作者的用心整理和無私分享表示感謝
========
XMLHTTP
========
Open方法
包含了5個參數,前三個是必要的,
後兩個是可選的(在服務器需要進行身份驗證時提供)。
參數的含義如下所示:
http-method: HTTP的通信方式,比如GET或是 POST
url: 接收XML數據的服務器的URL地址。通常在URL中要指明 ASP或CGI程序
async: 一個布爾標識,說明請求是否爲異步的。
如果是異步通信方式(true),客戶機就不等待服務器的響應;
如果是同步方式(false),客戶機就要等到服務器返回消息後才去執行其他操作
userID 用戶ID,用于服務器身份驗證
password 用戶密碼,用于服務器身份驗證
用Open方法對Request對象進行初始化後,調用Send方法發送XML數據
Send方法
參數類型是Variant,可以是字符串、DOM樹或任意數據流。
發送數據的方式分爲同步和異步兩種。
在異步方式下,數據包一旦發送完畢,就結束Send進程,客戶機執行其他的操作;
而在同步方式下,客戶機要等到服務器返回確認消息後才結束Send進程。
XMLHTTP對象中的readyState屬性
能夠反映出服務器在處理請求時的進展狀況。
客戶機的程序可以根據這個狀態信息設置相應的事件處理方法。
值說明
0 Response對象已經創建,但XML文檔上載過程尚未結束
1 XML文檔已經裝載完畢
2 XML文檔已經裝載完畢,正在處理中
3 部分XML文檔已經解析
4 文檔已經解析完畢,客戶端可以接受返回消息
客戶機接收響應是通過XMLHTTP對象的屬性實現
responseText:將返回消息作爲文本字符串;
responseBody:將返回消息作爲HTML文檔內容;
responseXML:將返回消息視爲XML文檔,在服務器響應消息中含有XML數據時使用;
responseStream:將返回消息視爲Stream對象
=======
XMLDOC
=======
Document 對象屬性
以下所列是可用的document對象屬性:
1. async
2. attributes
3. childNodes
4. doctype
5. document.lement
6. firstChild
7. implementation
8. lastChild
9. nextSibling
10. nodeName
11. nodeType
12. nodevalue
13. ondataavailable
14. onreadystatechange
15. ownerdocument.
16. parentNode
17. parseError
18. previousSibling
19. readyState
20. url
21. validateOnParse
22. xml
以下列出關于document對象可用的方法。
1. abort
2. appendChild
3. cloneNode
4. createAttribute
5. createCDATASection
6. createComment
7. createdocument.ragment
8. createElement
9. createEntityReference
10. createNode
11. createProcessingInstruction
12. createTextNode
13. getElementsByTagName
14. hasChildNodes
15. insertBefore
16. load
17. loadXML
18. nodeFromID
19. parsed
20. removeChild
21. replaceChild
22. selectNodes
23. selectSingleNode
24. transformNode
下面列出來的是document對象可用的事件:
1. Ondataavailable
2. Onreadystatechange
Document 對象屬性
以下所列是可用的document對象屬性:
1. async
2. attributes
3. childNodes
4. doctype
5. document.lement
6. firstChild
7. implementation
8. lastChild
9. nextSibling
10. nodeName
11. nodeType
12. nodevalue
13. ondataavailable
14. onreadystatechange
15. ownerdocument.
16. parentNode
17. parseError
18. previousSibling
19. readyState
20. url
21. validateOnParse
22. xml
async 屬性
------------------
async 屬性表示是否允許異步的下載。
基本語法:
boolvalue = XMLdocument.async;
XMLdocument.async = boolvalue;
說明:布爾值是可擦寫的(read/write),如果准許異步下載,值爲True;反之則爲False。
使用範例:
xmlDoc.async = "false";
alert(xmlDoc.async);
attribute 屬性
-------------------
傳回目前節點的屬性列表。
基本語法:
objAttributeList = xmlNode.attributes;
說明:傳回一個物件。如果此節點不能包含屬性,則傳回空值。
使用範例:
objAttList = xmlDoc.document.lement.attributes;
alert(objAttList);
------------------------------------------------------------------------------
[Note]
例子以[object]爲結果傳回。
這是由于被傳回的對象,若不使用其它的對象屬性,就不能以文字來表示,
在本附錄中包含數個這樣的例子。盡管很多對象屬性本身似乎不是很有用,
但您將會在附錄中看到如何組合屬性和方法得到您要的結果。
------------------------------------------------------------------------------
childNodes 屬性
-----------------
傳回一個節點清單,包含該節點所有可用的子節點。
基本語法:
objNodeList=node.childNodes;
說明:傳回一個物件。假如這節點沒有子節點,傳回null。
使用範例:
objNodeList = xmlDoc.childNodes;
alert(objNodeList);
doctype 屬性
-----------------
傳回文件型態節點,包含目前文件的DTD。
這節點是一般的文件型態宣告,
例如,節點<!DOCTYPE EMAIL SYSTEM "LstA_2.dtd">,
名爲EMAIL 的節點物件會被傳回。
基本語法:
objDocType=xmldocument.doctype;
說明:傳回一個對象,這個屬性是只讀的。假如這文件不包含DTD,會傳回null。
使用範例:
objDocType = xmlDoc.doctype;
alert(objDocType.nodeName);
document.lement 屬性
確認XML 文件的根(Root)節點。
----------------------------
基本語法:
objDoc=xmldocumentdocument.element;
說明:回一個在單一根文件元素中包含數據的對象。
此屬性可讀/寫,如果文件中不包含根節點,將傳回null。
使用範例:
objDocRoot = xmlDoc.document.element;
alert(objDocRoot);
firstChild 屬性
-----------------
確認在目前節點中的第一個子元素。
基本語法:
objFirstChild = xmlDocNode.firstChild;
說明:此屬性只讀且會傳回一對象,如果節點中沒有包含第一個子元素,將傳回null。
使用範例:
objFirstChild = xmlDoc.document.lement.firstChild;
alert(objFirstChild);
implementation 屬性
---------------------
DOM 應用程序能使用其它實作中的對象。
implementation 屬性確認目前XML 文件的DOMimplementation 對象
基本語法:
objImplementation = xmldocument.implementation;
說明:此屬性只讀且傳回一個對象。
使用範例:
objImp = xmlDoc.implementation;
alert(objImp);
lastChild 屬性
---------------
確認目前節點中最後的子元素。
基本語法:
objLastChild = xmlDocNode.lastChild;
說明:此屬性只讀且傳回一個對象。如果節點中沒有包含最後子元素,將傳回null。
使用範例:
objLastChild = xmlDoc.document.lement.lastChild;
alert(objLastChild);
nextSibling 屬性
------------------
在目前文件節點的子節點列表中傳回下一個兄弟節點。
基本語法:
objNextSibling = xmlDocNode.nextSibling;
說明:此屬性是只讀且傳回一個對象。如果節點中沒有包含其它的相關節點,會傳回null。
使用範例:
objSibling = xmlDoc.document.lement.childNodes.item(1).nextSibling;
alert(objSibling);
nodeName 屬性
---------------
傳回代表目前節點名稱的字符串。
基本語法:
strNodeName = xmlDocNode.nodeName ;
說明:傳回一個字符串。這個屬性是只讀的,傳回元素名稱、屬性或實體參照。
使用範例:
strNodeName = xmlDoc.document.lement.nodeName;
alert(strNodeName);
nodeType 屬性
---------------
辨識節點的DOM 型態。
基本語法:
numNodeType = xmlDocNode.nodeType;
說明:此屬性只讀且傳回一個數值。
有效的數值符合以下的型別:
1-ELEMENT
2-ATTRIBUTE
3-TEXT
4-CDATA
5-ENTITY REFERENCE
6-ENTITY
7-PI (processing instruction)
8-COMMENT
9-document.
10-document.nbsp;TYPE
11-document.nbsp;FRAGMENT
12-NOTATION
-------------------------------
使用範例:
numNodeType = xmlDoc.document.lement.nodeType;
alert(numNodeType);
nodevalue 屬性
-----------------
傳回指定節點相關的文字。
這並非一個元素中數據的值,而是與一個節點相關且未解析的文字,
就像一個屬性或者一個處理指令。
基本語法:
varNodevalue = xmlDocNode.nodevalue;
說明:傳回的文字代表以節點的nodeType 屬性爲主的型態值。
(請參考附錄中的nodeType 屬性。)
因爲節點型態可能是幾種數據型態中的一種,傳回值也因此有差異。
傳回null 的節點型態有:
document.ELEMENT、document.TYPE、document.FRAGMENT、
ENTITY、ENTITY REFERENCE,和NOTATION。
此屬性可擦寫。
使用範例:
varNodevalue = xmlDoc.document.lement.nodevalue;
alert(varNodevalue);
ondataavailable 屬性
---------------------
指定一個事件來處理ondataavailable 事件。
(更多關于ondataavailable 事件的信息,
請參閱附錄中<document對象事件>的部分)。
基本語法:
xmlDocNode.ondataavailable = value;
說明:此屬性是唯寫,允許文件作者一旦數據爲可用,即可盡快的使用數據來運作。
使用範例:
xmlDoc.ondataavailable = alert("Data is now available.");
onreadystatechange 屬性
------------------------
指定一個事件來處理onreadystatechange 事件。
這個事件能辨識readyState 屬性的改變。
基本語法:
xmlDocNode.onreadystatechange = value;
說明:此屬性是唯寫的,允許文件作者指定當readyState 屬性改變時呼叫事件。
使用範例:
xmlDoc.onreadystatechange =
alert("The readyState property has changed.");
ownerdocument屬性
------------------------
傳回文件的根節點,包含目前節點。
基本語法:
objOwnerDoc = xmldocument.ownerdocument.
說明:此屬性是只讀的,傳回一個包含文件根節點的對象,包含特定的節點。
使用範例:
objOwnerDoc = xmlDoc.childNodes.item(2).ownerdocument.
alert(objOwnerDoc);
parentNode 屬性
-----------------
傳回目前節點的父節點。只能應用在有父節點的節點中。
基本語法:
objParentNode = xmldocument.ode.parentNode;
說明:此屬性是只讀的,傳回包含指定節點的父節點對象。
如果此節點不存在于文件樹中,將傳回null。
使用範例:
objParentNode = xmlDoc.childNodes.item(1).parentNode;
alert(objParentNode);
parseError 屬性
-----------------
傳回一個DOM 解析錯誤對象,此對象描述最後解析錯誤的訊息。
基本語法:
objParseErr = xmldocument.parseError;
說明:此屬性是只讀的。如果沒有錯誤發生,將傳回0。
使用範例:
objParseErr = xmlDoc.parseError;
alert(objParseErr);
previousSibling 屬性
---------------------
傳回目前節點之前的兄弟節點。
基本語法:
objPrevSibling = xmldocument.previousSibling;
說明:傳回一個對象,這個屬性是只讀的。若該節點沒有包含前面的兄弟節點,會傳回null。
使用範例:
objPrevSibling = xmlDoc.document.lement.childNodes.item(3).previousSibling
alert(objPrevSibling);
readyState 屬性
-------------------
傳回XML 文件資料的目前狀況。
基本語法:
intState = xmldocument.readyState;
說明:這個屬性是只讀的,
傳回值有以下的可能:
0-UNINITIALIZED:XML 對象被産生,但沒有任何文件被加載。
1-LOADING:加載程序進行中,但文件尚未開始解析。
2-LOADED:部分的文件已經加載且進行解析,但對象模型尚未生效。
3-INTERACTIVE:僅對已加載的部分文件有效,在此情況下,對象模型是有效但只讀的。
4-COMPLETED:文件已完全加載,代表加載成功。
使用範例:
alert("The readyState property is " + xmlDoc.readyState);
url 屬性
---------------
傳回最近一次加載XML 文件的URL。
基本語法:
strDocUrl = xmldocument.url;
說明:這個屬性是只讀的,傳回最近一次加載成功文件的URL,
若文件僅存在主存儲器中(表示該文件並非由外部檔案加載),則傳回null
使用範例:
alert(xmlDoc.url);
validateOnParse 屬性
----------------------
告訴解析器文件是否有效。
基本語法:
boolValidate = xmldocument.validateOnParse;
xmldocument.validateOnParse = boolValidate;
說明:此屬性是可擦寫的。
如果傳回值爲true,表示文件被解析時被確認是有效的。
如果傳回false,表示文件是無效的,並被認爲只是標准格式的(well-formed)文件。
使用範例:
xmlDoc.validateOnParse = true;
alert(xmlDoc.validateOnParse);
xml 屬性
------------
傳回指定節點的XML 描述和所有的子節點。
基本語法:
xmlvalue = xmldocument.ode.xml;
說明:此屬性是只讀的。
使用範例:
xmlvalue = xmlDoc.document.lement.xml;
alert(xmlvalue);
以下列出關于document對象可用的方法。
1. abort
2. appendChild
3. cloneNode
4. createAttribute
5. createCDATASection
6. createComment
7. createdocument.ragment
8. createElement
9. createEntityReference
10. createNode
11. createProcessingInstruction
12. createTextNode
13. getElementsByTagName
14. hasChildNodes
15. insertBefore
16. load
17. loadXML
18. nodeFromID
19. parsed
20. removeChild
21. replaceChild
22. selectNodes
23. selectSingleNode
24. transformNode
abort 方法
-------------
abort 方法取消一個進行中的異步下載。
基本語法:
xmldocument.abort();
說明:如果這個方法在異步下載時被呼叫,所有的解析動作會停止,
而且在內存中的文件會被釋放。
AppendChild 方法
------------------
加上一個節點當作指定節點最後的子節點。
基本語法:
xmldocument.ode.appendChild(newChild);
說明:newChild 是附加子節點的地址。
使用範例:
docObj = xmlDoc.document.lement;
alert(docObj.xml);
objNewNode = docObj.appendChild(xmlDoc.document.lement.firstChild);
alert(docObj.xml);
cloneNode 方法
---------------
建立指定節點的複制。
基本語法:
xmldocument.ode.cloneNode(deep);
說明:deep 是一個布爾值。
如果爲true,此節點會複制以指定節點發展出去的所有節點。
如果是false,只有指定的節點和它的屬性被複制。
使用範例:
currNode = xmlDoc.document.lement.childNodes.item(1);
objClonedNode = currNode.cloneNode(1);
alert(objClonedNode.xml);
createAttribute 方法
------------------------
建立一個指定名稱的屬性。
基本語法:
xmldocument.createAttribute(name);
說明:name 是被建立屬性的名稱。
使用範例:
objNewAtt = xmlDoc.createAttribute("encryption");
alert(objNewAtt.xml);
createCDATASection 方法
------------------------
建立一個包含特定數據的CDATA。
基本語法:
xmldocument.createCDATASection(data);
說明:date 是一個字符串,且包含了被置放在CDATA 的資料。
使用範例:
objNewCDATA = xmlDoc.createCDATASection("This is a CDATA Section");
alert(objNewCDATA.xml);
createComment 方法
-------------------
建立一個包含指定數據的批注。
基本語法:
xmldocument.createComment(data);
說明:data 是一個字符串,且包含了被置放在批注的資料
使用範例:
objNewComment = xmlDoc.createComment("This is a comment");
alert(objNewComment.xml);
createdocument.ragment 方法
-----------------------------
建立一個空的文件片斷對象。
基本語法:
xmldocument.createdocument.ragment();
說明:一個新的文件片斷被建立,但沒有加到文件樹中。
要加入片斷到文件樹中,必須使用插入方法,
例如insertBefore、replaceChild 或 appendChild。
使用範例:
objNewFragment = xmlDoc.createdocument.ragment();
alert(objNewFragment.xml);
createElement 方法
--------------------
建立一個指定名稱的元素。
基本語法:
xmldocument.createElement(tagName);
說明:tagName 是一個區分大小寫的字符串來指定新元素名稱。
使用範例:
objNewElement = xmlDoc.createElement("TO");
alert(objNewElement.xml);
createEntityReference 方法
-----------------------------
建立一個參照到指定名稱的實體。
基本語法:
xmldocument.createEntityReference(name);
說明:name 是一個區分大小寫的字符串,來指定新實體參照的名稱。
一個新的實體參照被建立,但是並沒有被加到文件樹中。
若要將實體參照 加到文件樹中,必須使用一種插入方法,
例如:insertBefore,replaceChild,或appendChild。
使用範例:
objNewER = xmlDoc.createEntityReference("eRef");
alert(objNewER.xml);
createNode 方法
----------------------
建立一個指定型態、名稱,及命名空間的新節點。
基本語法:
xmldocument.createNode(type, name, nameSpaceURI);
說明:
type 用來確認要被建立的節點型態,
name 是一個字符串來確認新節點的名稱,命名空間的前綴則是選擇性的。
nameSpaceURI 是一個定 義命名空間URI 的字符串。
如果前綴被包含在名稱參數中,此節點會在nameSpaceURI 的內文中以指定的前綴建立。
如果不包含前綴,指定的命 名空間會被視爲預設的命名空間。
使用範例:
objNewNode = xmlDoc.createNode(1,"TO","");
alert(objNewNode.xml);
createProcessingInstruction 方法
--------------------------------
建立一個新的處理指令,包含了指定的目標和數據。
基本語法:
xmldocument.createProcessingInstruction(target, data);
說明:
target 是表示目標、名稱或處理指令的字符串。
Data 是表示處理指令的值。
一個新的處理指令被建立,但是並沒有加到文件樹中。
要把處理指令加到文件樹中,必須使用插入方法,
例如:insertBefore、replaceChild,或是appendChild。
使用範例:
objNewPI = xmlDoc.createProcessingInstruction(‘XML’, ‘version="1.0"’);
alert(objNewPI.xml);
createTextNode 方法
------------------------
建立一個新的text 節點,並包含指定的數據。
基本語法:
xmldocument.createTextNode(data);
說明:
data 是一個代表新text 節點的字符串。
一個新的text 節點被建立,但是沒有加到文件樹中。
若要將節點加到文件樹中,必須使用插入 方法,
例如:insertBefore,replaceChild或appendChild。
使用範例:
objNewTextNode = xmlDoc.createTextNode("This is a text node.");
alert(objNewTextNode.xml);
getElementsByTagName 方法
-----------------------------
傳回指定名稱的元素集合。
基本語法:
objNodeList = xmldocument.getElementsByTagName(tagname);
說明:
tagname 是一個字符串,代表找到的元素卷標名稱。
使用tagname "*"傳回文件中所有找到的元素。
使用範例:
objNodeList = xmlDoc.getElementsByTagName("*");
alert(objNodeList.item(1).xml);
haschildnodes 方法
----------------------
如果指定的節點有一個或更多子節點,傳回值爲true。
基本語法:
boolvalue = xmldocument.ode.hasChildNodes() ;
說明:如果此節點有子節點傳回值爲true,否則傳回false 值。
使用範例:
boolvalue = xmlDoc.document.lement.hasChildNodes();
alert(boolvalue);
insertBefore 方法
---------------------
在指定的節點前插入一個子節點。
基本語法:
objdocument.ode = xmldocument.ode.insertBefore(newChild,refChild);
說明:
newChild 是一個包含新子節點地址的對象,
refChild 是參照節點的地址。
新子節點被插到參照節點之前。
如果refChild 參數沒有包含 在內,新的子節點會被插到子節點列表的末端。
使用範例:
objRefNode = xmlDoc.document.lement;
alert(xmlDoc.xml);
objNewNode = xmlDoc.createComment("This is a comment");
xmlDoc.insertBefore(objNewNode, objRefNode);
alert(xmlDoc.xml);
load 方法
--------------
表示從指定位置加載的文件。
基本語法:
boolvalue = xmldocument.load(url);
說明:
url 包含要被加載檔案的URL 的字符串。
假如文件加載成功,傳回值即爲true。
若加載失敗,傳回值爲false。
使用範例:
boolvalue = xmlDoc.load("Lst.xml");
alert(boolvalue);
loadXML 方法
----------------
加載一個XML 文件或字符串的片斷。
基本語法:
boolvalue = xmldocument.loadXML(xmlString);
說明:xmlString 是包含XML 文字碼的字符串。
這個字符串可以包含整個文件或者只是一個文件片斷。
如果文件加載成功,傳回值爲true。
假如加載失敗,傳回值則是false。
使用範例:
xmlString = "<GREETING><MESSAGE>Hello!</MESSAGE></GREETING>";
boolvalue = xmlDoc.loadXML(xmlString);
alert(boolvalue);
nodeFromID 方法
------------------
傳回節點ID 符合指定值的節點。
基本語法:
xmldocument.ode = xmldocument.nodeFromID(idString);
說明:
idString 是一個包含ID 值的字符串。
符合的節點必定是ID 型態。
若符合,將傳回一個對象;若操作失敗,則傳回null。
使用範例:
objdocument.ode = xmlDoc.nodeFromID("TO");
alert(objdocument.ode);
parsed 方法
-------------
會驗證該指定的節點(node)及其衍生的子節點(descendants)是否已被解析過。
基本語法:
boolvalue = xmldocument.ode.parsed();
說明:
如果全部的節點都已經被解析過了,則傳回值爲ture;
如果有任何一個節點尚未被解析,傳回值則爲false。
使用範例:
currNode = xmlDoc.document.lement.childNodes.item(0);
boolvalue = currNode.parsed();
alert(boolvalue);
removeChild 方法
-------------------
會將指定的節點從節點清單中移除。
基本語法:
objdocument.ode = xmldocument.ode.removeChild(oldChild);
說明:oldChild 爲一個包含要被移除的節點對象。
使用範例:
objRemoveNode = xmlDoc.document.lement.childNodes.item(3);
alert(xmlDoc.xml);
xmlDoc.document.lement.removeChild(objRemoveNode);
alert(xmlDoc.xml);
replaceChild 方法
--------------------
置換指定的舊子節點爲提供的新子節點。
基本語法:
objdocument.ode = xmldocument.ode.replaceChild(newChild,oldChild);
說明:
newChild 爲包含新子節點的對象。
如果此參數爲null,則此舊子節點會被移除而不會被取代。
oldChild 爲包含舊子節點的對象。
使用範例:
objOldNode = xmlDoc.document.lement.childNodes.item(3);
objNewNode = xmlDoc.createComment("I've replaced the BCC element.");
alert(xmlDoc.xml);
xmlDoc.document.lement.replaceChild(objNewNode,objOldNode);
alert(xmlDoc.xml);
selectNodes 方法
--------------------
傳回所有符合提供樣式(pattern)的節點。
基本語法:
objdocument.odeList = xmldocument.ode.selectNodes(patternString);
說明:
patternString 爲一包含XSL 樣式的字符串。
此方法會傳回節點清單對象,包含符合樣式的節點。
如果沒有符合的節點,則傳回空的清單列表。
使用範例:
objNodeList=xmlDoc.selectNodes("/");
alert(objNodeList.item(0).xml);
selectSingleNode 方法
--------------------------
傳回第一個符合樣式的節點。
基本語法:
objdocument.ode = xmldocument.ode.selectSingleNode(patternString);
說明:
patternString 爲一包含XSL 樣式的字符串。
此方法會傳回第一個符合的節點對象,如果沒有符合的節點,則傳回null。
使用範例:
objNode = xmlDoc.selectSingleNode("EMAIL/BCC");
alert(objNode.xml);
transformNode 方法
----------------------
使用提供的樣式表來處理該節點及其子節點。
基本語法:
strTransformeddocument= xmldocument.ode.transformNode(stylesheet);
說明:
stylesheet 爲一XML 文件或是片斷包含負責節點轉換工作的XSL 元素。
此方法會傳回一包含轉換結果的字符串。
使用範例:
var style = new ActiveXObject("Microsoft.XMLDOM");
style.load("Lst.xsl");
strTransform = xmlDoc.transformNode(style.document.lement);
alert(strTransform);
Document 對象的事件
下面列出來的是document對象可用的事件:
1. Ondataavailable
2. Onreadystatechange
Ondataavailable 事件
----------------------
此事件會在XML 文件有效時被觸發。
基本語法:
此一事件有下面三種處理方式
. Inline:<element ondataavailable = handler>;
. Event property:object.ondataavailable = handler;
. Named script:<SCRIPT FOR = object EVENT = ondataavailable>;
說明:ondataavailable 事件只要一獲得有效的數據就會被觸發。
這項技術並未說明在這個文件中有多少數據是有效的。
使用範例:
xmlDoc.ondataavailable = alert('Data is now available.');
Onreadystatechange 事件
------------------------
這個事件會在readyState 屬性內容改變時被觸發。
基本語法:
此一事件有如下三種處理方式:
. Inline:<element onreadystatechange = handler>;
. Event property:object.onreadystatechange = handler;
. Named script:<SCRIPT FOR = object EVENT = onreadystatechange>;
-
說明:
onreadystatechange 事件在readyState 屬性內容改變時就會被觸發,
但這個事件並未說明「准備好」的狀態是什麽。
必須使用readyState 屬性來取得現在的狀態。
使用範例:
xmlDoc.onreadystatechange =
alert("The readyState property is" + xmlDoc.readyState);
http://www.cnblogs.com/freeliver54/archive/2006/11/27/573657.html(王朝網絡 wangchao.net.cn)
來源網址:http://www.dotblogs.com.tw/hatelove/archive/2009/01/05/6639.aspx - [ASP.NET AJAX]PageMethod:用javascript呼叫server端的method - In 91- 點部落
*************************************************************************************
Step1:首先,PageMethod是建立在ASP.NET AJAX裡,也就是跟Scriptmanager息息相關。所以畫面上要有Scriptmanager,而且要設定一下EnablePageMethods屬性為True。
<ASPExtensions:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"> </ASPExtensions:ScriptManager>