有時為了避免發出 PostBack,卻要透過Server端存取資料時,可採用下面的作法。
有兩種ActiveXObject可使用,Msxml2.XMLHTTP.4.0的版本,提供較好的MultiThread的作法,
缺點是用戶端的瀏覽器需下載更新軟體才能使用。而Microsoft.XMLHTTP則是他的前一個版本,
效能可能不如4.0版的好,但是客戶端瀏覽器不需額外安裝更新檔案。
var
oHttp=new
ActiveXObject("Msxml2.XMLHTTP.4.0");
// or for MSXML 3.0 IE5.5
//
var oHttp=
new
ActiveXObject("Microsoft.XMLHTTP");
<SCRIPT language="JScript">
<!--
var retVal=null;
var oHTTP=null;
function GetCheck(arg)
{
oHTTP= new
ActiveXObject("Microsoft.XMLHTTP");
oHTTP.onreadystatechange =
oHTTP_onreadystatechange; //event handle
var url =
arg+"?ConsignorNO="+Form1.txtConsignorNo.value;
try
{
oHTTP.Open("GET", url,
false); //false:同步 true:非同步
oHTTP.Send();
}
catch(e)
{
//for Debug Only
alert(e);
}
}
function oHTTP_onreadystatechange()
{
if (oHTTP.readyState == 4)
{
retVal = oHTTP.responseText;
}
}
//-->
</SCRIPT>
這裡所指定的url,是去開啟一個aspx的檔案,在這個檔案裡的 OnPageLoad()屬性中,我們會寫程式去資料庫抓取我們想要的資料。
我們最後會將資料透過 Response.Write()的方式,寫到頁面上。因為我們採用 GET() 的方式,所以這頁面上的資料都會被我們取回
來。另外,在.aspx的HTML裡,除了codebehinde那一行留著,其他都要刪掉。在Response.Write()執行完之後,也要用Response.End()
當結尾,避免後面被塞了一些垃圾標籤。
沒有留言:
張貼留言