遠(yuǎn)程腳本 概述
更新時(shí)間:2009年07月18日 16:18:40 作者:
我們已經(jīng)介紹了Ajax,下面來簡(jiǎn)單談?wù)勥h(yuǎn)程腳本。你可能會(huì)想:“Ajax有什么大不了的?我早就用IFRAME做過同樣的事情。
”實(shí)際上,我們自己也曾用過這種方法。這在以前一般稱為遠(yuǎn)程腳本(remote scripting),很多人認(rèn)為這只是一種修修補(bǔ)補(bǔ)。不過,這確實(shí)提供了一種能避免頁(yè)面刷新的機(jī)制。
遠(yuǎn)程腳本概述
基本說來,遠(yuǎn)程腳本是一種遠(yuǎn)程過程調(diào)用類型。你可以像正常的Web應(yīng)用一樣與服務(wù)器交互,但是不用刷新整個(gè)頁(yè)面。與Ajax類似,你可以調(diào)用任何服務(wù)器端技術(shù)來接收請(qǐng)求、處理請(qǐng)求并返回一個(gè)有意義的結(jié)果。正如在服務(wù)器端有很多選擇,客戶端同樣有許多實(shí)現(xiàn)遠(yuǎn)程腳本的選擇。你可以在應(yīng)用中嵌入Flash動(dòng)畫、Java applet,或者ActiveX組件,甚至可以使用XML-RPC,但是這種方法過于復(fù)雜,因此除非你使用這種技術(shù)很有經(jīng)驗(yàn),否則這種方法不太合適。實(shí)現(xiàn)遠(yuǎn)程腳本的通常做法包括將腳本與一個(gè)IFRAME(隱藏或不隱藏)結(jié)合,以及由服務(wù)器返回JavaScript,然后再在瀏覽器中運(yùn)行這個(gè)JavaScript。
Microsoft提供了自己的遠(yuǎn)程腳本解決方案,并聰明地稱之為Microsoft遠(yuǎn)程腳本(Microsoft Remote Scripting,MSRS)。采用這種方法,可以像調(diào)用本地腳本一樣調(diào)用服務(wù)器腳本。頁(yè)面中嵌入Java applet,以便與服務(wù)器通信,.asp頁(yè)面用于放置服務(wù)器端腳本,并用.htm文件管理客戶端的布局?jǐn)[放。在Netscape和IE 4.0及更高版本中都可以使用Microsoft的這種解決方案,可以同步調(diào)用,也可以異步調(diào)用。不過,這種解決方案需要Java,這意味著可能還需要附加的安裝例程,而且還需要Internet Information Services(IIS),因此會(huì)限制服務(wù)器端的選擇。
Brent Ashley為遠(yuǎn)程腳本創(chuàng)建了兩個(gè)免費(fèi)的跨平臺(tái)庫(kù)。JSRS是一個(gè)客戶端JavaScript庫(kù),它充分利用DHTML向服務(wù)器做遠(yuǎn)程調(diào)用。相當(dāng)多的操作系統(tǒng)和瀏覽器上都能使用JSRS。如果采用一些常用的、流行的服務(wù)器端實(shí)現(xiàn)(如PHP、Python和Perl CGI),JSRS一般都能在網(wǎng)站上安裝并運(yùn)行。Ashley免費(fèi)提供了JSRS,而且還可以從他的網(wǎng)站(www.ashleyit.com
/rs/main.htm)上得到源代碼。
如果你覺得JSRS太過笨重,Ashley還創(chuàng)建了RSLite,這個(gè)庫(kù)使用了cookie。RSLite僅限于少量數(shù)據(jù)和單一調(diào)用,不過大多數(shù)瀏覽器都能提供支持。
2.5.2 遠(yuǎn)程腳本的示例
為了進(jìn)行比較,這里向你展示如何使用IFRAME來實(shí)現(xiàn)類似Ajax的技術(shù)。這非常簡(jiǎn)單,而且過去我們就用過這種方法(在XMLHttpRequest問世之前)。這個(gè)示例并沒有真正調(diào)用服務(wù)器,只是想讓你對(duì)如何使用IFRAME實(shí)現(xiàn)遠(yuǎn)程腳本有所認(rèn)識(shí)。
這個(gè)示例包括兩個(gè)文件:iframe.html(見代碼清單2-2)和server.html(見代碼清單2-3)。server.html模擬了本應(yīng)從服務(wù)器返回的響應(yīng)。
代碼清單2-2 iframe.html文件
<html>
<head>
<title>Example of remote scripting in an IFRAME</title>
</head>
<script type="text/javascript">
function handleResponse() {
alert('this function is called from server.html');
}
</script>
<body>
<h1>Remote Scripting with an IFRAME</h1>
<iframe id="beforexhr"
name="beforexhr"
style="width:0px; height:0px; border: 0px"
src="blank.html"></iframe>
<a href="server.html" target="beforexhr">call the server</a>
</body>
</html>
代碼清單2-3 server.html文件
<html>
<head>
<title>the server</title>
</head>
<script type="text/javascript">
window.parent.handleResponse();
</script>
<body>
</body>
</html>
圖2-2顯示了最初的頁(yè)面。運(yùn)行這個(gè)代碼生成的結(jié)果如圖2-3所示。

圖2-2 最初的頁(yè)面

圖2-3 調(diào)用“服務(wù)器”之后的頁(yè)面
遠(yuǎn)程腳本概述
基本說來,遠(yuǎn)程腳本是一種遠(yuǎn)程過程調(diào)用類型。你可以像正常的Web應(yīng)用一樣與服務(wù)器交互,但是不用刷新整個(gè)頁(yè)面。與Ajax類似,你可以調(diào)用任何服務(wù)器端技術(shù)來接收請(qǐng)求、處理請(qǐng)求并返回一個(gè)有意義的結(jié)果。正如在服務(wù)器端有很多選擇,客戶端同樣有許多實(shí)現(xiàn)遠(yuǎn)程腳本的選擇。你可以在應(yīng)用中嵌入Flash動(dòng)畫、Java applet,或者ActiveX組件,甚至可以使用XML-RPC,但是這種方法過于復(fù)雜,因此除非你使用這種技術(shù)很有經(jīng)驗(yàn),否則這種方法不太合適。實(shí)現(xiàn)遠(yuǎn)程腳本的通常做法包括將腳本與一個(gè)IFRAME(隱藏或不隱藏)結(jié)合,以及由服務(wù)器返回JavaScript,然后再在瀏覽器中運(yùn)行這個(gè)JavaScript。
Microsoft提供了自己的遠(yuǎn)程腳本解決方案,并聰明地稱之為Microsoft遠(yuǎn)程腳本(Microsoft Remote Scripting,MSRS)。采用這種方法,可以像調(diào)用本地腳本一樣調(diào)用服務(wù)器腳本。頁(yè)面中嵌入Java applet,以便與服務(wù)器通信,.asp頁(yè)面用于放置服務(wù)器端腳本,并用.htm文件管理客戶端的布局?jǐn)[放。在Netscape和IE 4.0及更高版本中都可以使用Microsoft的這種解決方案,可以同步調(diào)用,也可以異步調(diào)用。不過,這種解決方案需要Java,這意味著可能還需要附加的安裝例程,而且還需要Internet Information Services(IIS),因此會(huì)限制服務(wù)器端的選擇。
Brent Ashley為遠(yuǎn)程腳本創(chuàng)建了兩個(gè)免費(fèi)的跨平臺(tái)庫(kù)。JSRS是一個(gè)客戶端JavaScript庫(kù),它充分利用DHTML向服務(wù)器做遠(yuǎn)程調(diào)用。相當(dāng)多的操作系統(tǒng)和瀏覽器上都能使用JSRS。如果采用一些常用的、流行的服務(wù)器端實(shí)現(xiàn)(如PHP、Python和Perl CGI),JSRS一般都能在網(wǎng)站上安裝并運(yùn)行。Ashley免費(fèi)提供了JSRS,而且還可以從他的網(wǎng)站(www.ashleyit.com
/rs/main.htm)上得到源代碼。
如果你覺得JSRS太過笨重,Ashley還創(chuàng)建了RSLite,這個(gè)庫(kù)使用了cookie。RSLite僅限于少量數(shù)據(jù)和單一調(diào)用,不過大多數(shù)瀏覽器都能提供支持。
2.5.2 遠(yuǎn)程腳本的示例
為了進(jìn)行比較,這里向你展示如何使用IFRAME來實(shí)現(xiàn)類似Ajax的技術(shù)。這非常簡(jiǎn)單,而且過去我們就用過這種方法(在XMLHttpRequest問世之前)。這個(gè)示例并沒有真正調(diào)用服務(wù)器,只是想讓你對(duì)如何使用IFRAME實(shí)現(xiàn)遠(yuǎn)程腳本有所認(rèn)識(shí)。
這個(gè)示例包括兩個(gè)文件:iframe.html(見代碼清單2-2)和server.html(見代碼清單2-3)。server.html模擬了本應(yīng)從服務(wù)器返回的響應(yīng)。
代碼清單2-2 iframe.html文件
復(fù)制代碼 代碼如下:
<html>
<head>
<title>Example of remote scripting in an IFRAME</title>
</head>
<script type="text/javascript">
function handleResponse() {
alert('this function is called from server.html');
}
</script>
<body>
<h1>Remote Scripting with an IFRAME</h1>
<iframe id="beforexhr"
name="beforexhr"
style="width:0px; height:0px; border: 0px"
src="blank.html"></iframe>
<a href="server.html" target="beforexhr">call the server</a>
</body>
</html>
代碼清單2-3 server.html文件
復(fù)制代碼 代碼如下:
<html>
<head>
<title>the server</title>
</head>
<script type="text/javascript">
window.parent.handleResponse();
</script>
<body>
</body>
</html>
圖2-2顯示了最初的頁(yè)面。運(yùn)行這個(gè)代碼生成的結(jié)果如圖2-3所示。

圖2-2 最初的頁(yè)面

圖2-3 調(diào)用“服務(wù)器”之后的頁(yè)面
相關(guān)文章
remote script文檔(轉(zhuǎn)載自微軟)(九)
remote script文檔(轉(zhuǎn)載自微軟)(九)...2007-03-03remote script文檔(轉(zhuǎn)載自微軟)(五)
這篇文章主要介紹了remote script文檔的相關(guān)資料,需要的朋友可以參考下2007-03-03remote script文檔(轉(zhuǎn)載自微軟)(七)
remote script文檔(轉(zhuǎn)載自微軟)(七)...2007-03-03remote script文檔(轉(zhuǎn)載自微軟)(四)
remote script文檔(轉(zhuǎn)載自微軟)(四)...2007-03-03remote script文檔(轉(zhuǎn)載自微軟)(八)
remote script文檔(轉(zhuǎn)載自微軟)(八)...2007-03-03remote script文檔[轉(zhuǎn)載自微軟](二)
remote script文檔[轉(zhuǎn)載自微軟](二)...2007-03-03remote script文檔(轉(zhuǎn)載自微軟)(六)
remote script文檔(轉(zhuǎn)載自微軟)(六)...2007-03-03不錯(cuò)的remote script文檔(轉(zhuǎn)載自微軟)(三)
不錯(cuò)的remote script文檔(轉(zhuǎn)載自微軟)(三)...2007-03-03remote script文檔(轉(zhuǎn)載自微軟)(一)
remote script文檔(轉(zhuǎn)載自微軟)(一)...2007-03-03