6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-12-10

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が必須ということでということで、いつの間にかに消えてしまった。
一時期使う機会があったが、それ以外でこれを使っているところは見た事がない。

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?