VBScript
asp
RemoteScripting

Ajaxの影で消えたブラウザ非同期通信Remote Scripting

Ajaxは知っての通り、ブラウザ内で非同期通信を行うJavascriptの技術です。

1999年にIE5にXMLHttpRequest実装されてから、2005年にAjaxという言葉が生まれて、現在では、SPA開発などで欠かせない技術になってきました。

こういった非同期通信の技術はAjax以外にも1999年にMicrosoftが「Remote Scripting」を出していましたが、いつの間にかに無くなっていた。

(確か、IE7かIE8出たあたりで使えなくなってた気がする)

あたらめて情報を探してみたけど、ネット上の情報が少なすぎる。

基本的な仕組みは、

クライアントサイドはXMLHttpRequestではなく、

Microsoft Java VMの独自のJavaApplet(Rsproxy.class)から、

サーバーサイドのClassc ASP(Active Server Pages)上で設定したメソッドをよびだす。

※Microsoft VMのサポートは2007年に終了

※Classc ASP(Active Server Pages)はWindows2016サポートあり。2019は?

クライアントサイドからは下記のようにRSExecuteを使ってairport.aspページのvalidateAirportメソッドをtxtDepart.valueの引数で呼び出す。


<script language="JScript" src="../_ScriptLibrary/rs.htm"></script>
<script language="JScript">
RSEnableRemoteScripting("../_ScriptLibrary");
</script>
<script language="JScript">
function txtDepart_onblur()
{
var objTest
/* Call the validateAirport Method on airport.asp
When it's done call me back on airportCallBack */

objTest = RSExecute("airport.asp","validateAirport",txtDepart.value)

// Check to see if we have an error
if (objTest.return_value != true)
{
// Display the error in the div
alert(objReturn.return_value);
}
}
</script>

そうするとサーバーサイド側ではVBScriptのvalidateAirportメソッドを呼び出されて値を返す。


airport.asp


<%@ LANGUAGE=VBSCRIPT %>
<%
' Define my Airport class
Class clsAirport
public function validateAirport(strAirport)
if lcase(strAirport) = "london" then
validateAirport = "Which London airport?" & vbCRLF
validateAirport = validateAirport & "Heathrow (LHR)" & vbCRLF
validateAirport = validateAirport & "Gatwick (LGW)" & vbCRLF
validateAirport = validateAirport & "Stansted (LST)" & vbCRLF
else
validateAirport = true
end if
end function
end class

set public_description = new clsAirport

' Call RSDispatch to use the public_description object and make
its methods available for Remote Scripting Calls
RSDispatch %>
<!--#INCLUDE FILE="../_scriptlibrary/rs.asp"-->


ブラウザからJavascriptを使ってサーバーと通信しているということで、

機能的にはAjaxと同じようなことが出来ているけど、

サーバーサイドはClassc ASP(Active Server Pages)が必須で、クライアント側はIEでMicrosoft VMが必須ということでということで、いつの間にかに消えてしまった。

一時期使う機会があったが、それ以外でこれを使っているところは見た事がない。