DevTrain Startseite Visual Studio 1 Magazin  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Hannes Preishuber Artikel Drucken
        
Remote Scripting

In vielen Newsgroup Posting liest man oft die Frage: " Ich möchte den Inhalt der Seite ändern ohne die Seite zu verlassen". Dabei sollen aber Daten vom Server nachgeladen werden. Eines muss klar sein, ASP kann nie vom Server einen Push ausführen. Mit Remote Scripting kommen Sie dem Effekt aber schon ganz nahe. So können Sie aus einer z.B. Chatseite den Chattext nachladen.

Wenn Sie kein VI haben könne Sie Remote Scripting in der aktuellsten Version von www.microsoft.com/scripting runterladen. Nach Installation steht das Remote Scripting zur Verfügung. Sie werden bemerken, das ein Verzeichnis _ScriptLibrary angelegt wird. Dies geschieht sinnvollerweise unterhalb des wwwroots. Damit haben alle virtuellen Webs die Möglichkeit Remote Scripting zu nutzen.
Wenn Sie mit Design Time Controls aus VI gearbeitet haben, werden Sie die Library schon kennen.
Der Trick ist, das sich über das Remote Scripting ein Java Applet installiert, das die Kommunikation mit dem Server übernimmt.
Remote Scripting ist selbst unter ASP Spezialisten wenig bekannt. Das mag an der anfänglich etwas kompizierte Vorgehensweise liegen. Auf alle Fälle ist Remote Scripting kein Schmuddelkind, und Sie sollten es mal probiert haben.
Nachdem Sie es Downgeloaded und installiert haben, können Sie loslegen. Zunächst erstellen wir ein Formular. Um die Funktion zu verdeutlichen, verwenden wir eine HTML Seite. Das Beispiel ist stark verkürzt und konzentriert sich auf das wesentliche.

Wichtig ist, das Sie einen Scriptblock einfügen der RS.HTM einschliesst.
<script language="JavaScript" src="http://localhost/_ScriptLibrary/rs.htm"></script>

Weiters muss die Scriptlibrary gestartet werden. Dies lädt dann das JAVA Applet.
RSEnableRemoteScripting("http://localhost/_ScriptLibrary");
Ein häufiger Fehler ist, das die Pfade in der ASP Seite, nicht auf die richtige Stelle zeigen. Die Diagnose ist dann sehr schwierig, da keine vernünftige Fehlermeldung dabei rauskommt.
 
Der Aufruf der Remote Funktion erfolgt über die Funktion RSExecute.
  var reti = RSExecute("remoteasp.asp","MailCheck",email);

Zuerst geben Sie den Namen der Seite an in der die Funktionen sind, Als zweites die Funktion im ASP File. Sie können auch mehrere Funktionen in ein ASP File packen. Die Übergabeparamter für die Funktion werden als Drittes angeführt. Beachten Sie, das JavaScript Case Sensitiv ist. Den Rückgabewert erhalten sie über die Eigenschaft return_value. Im folgenden wird anhand eines Eingabeformulares eine eMail Adresse geprüft ohne die Seite zu verlassen. Sie können diese Seite auch als HTML Seite erstellen.
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
</HEAD>
<BODY>
<script language="JavaScript" src="http://localhost/_ScriptLibrary/rs.htm"></script>

<FORM action="" id=FORM1 method=post name=FORM1 LANGUAGE=javascript >
<P>
<TABLE border=1 cellPadding=1 cellSpacing=1 width="75%">
 
  <TR>
    <TD>eMail</TD>
    <TD><INPUT  name="cemail" ></TD></TR>
  <TR>
    <TD>PLZ</TD>
    <TD><INPUT  name="cPLZ" ></TD></TR></TABLE></P>
    <INPUT type="button" value="Speichern" id=button1 name=button1 LANGUAGE=javascript onclick="button1_onclick()">
   </TD>
   </TR>
   </TABLE>
</FORM>

<script language="JavaScript">
<!--
RSEnableRemoteScripting("http://localhost/_ScriptLibrary");
function button1_onclick() {
// verkürzte Prüfung
  var email=FORM1.cemail.value;
  var reti = RSExecute("remoteasp.asp","MailCheck",email);
 if ( reti.return_value )
  {
    alert("Korrekt");
  }
  else
  {
   alert ("email falsch"); 
   FORM1.cemail.focus();
  }
}
//-->
</SCRIPT>
</BODY>
</HTML>


Als nächstes betrachten wir die ASP Seite in der die Funktion steht. Hier muss über Include die RS.ASP einbezogen werden.
<!--#INCLUDE VIRTUAL="/_ScriptLibrary/rs.asp"-->

Der Block mit Function Description muss enthalten sein. Dort müssen Sie für jede Funktion die enthalten ist, eine Zeile in der Form enthalten sein.
this.MailCheck = MailCheck;

In der Funktion ist die Mailprüfung stark verküzt.
<%@ Language=VBScript %>
<% RSDispatch %>
<!--#INCLUDE VIRTUAL="/_ScriptLibrary/rs.asp"-->
diese seite ist nur für remote Scripting geignet
<SCRIPT RUNAT=SERVER Language=javascript>
 function Description()
 {
  this.MailCheck = MailCheck;
 }
 public_description = new Description();
 function MailCheck(mail)
 {
     var checkMail=false;
  //gültigkeit ?
  if (mail.length >=7 )
      {
   checkMail=true;
  
            }
  return  checkMail;
 }
</SCRIPT>

In der Programmierpraxis sieht das natürlich etwas anders aus. Die Speicherung der Daten wird in einer eigenen Funktion in der ASP Seite durchgeführt. Die Validierung der Eingabefelder kann für jedes Feld einzeln verfolgen. Vergessen Sie aber nicht, das obwohl Sie sich auf der gleichen Seite befindet, dann für jedes Feld ein Request an den Webserver gesendet wird.


DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine verknüpften Dokumente
    Keine Links vorhanden

  Erfasst am: 26.01.2001
  Gültig bis: 29.03.2001
3 Ratings
Bewertung: 66,7%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG