Movatterモバイル変換


[0]ホーム

URL:


Rheinwerk Computing< openbook >Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einleitung
2 Webbrowser
3 JavaScript einbauen
4 Programmieren mit JavaScript
5 Datum
6 Zufall
7 Browserinformationen
8 Fenster
9 Formulare
10 Frames und Iframes
11 Grafiken
12 Cookies
13 Objekte und Arrays
14 Ereignisbehandlung
15 Fehlerbehandlung
16 DOM
17 DHTML und CSS
18 AJAX
19 XML
20 Web Services
21 AJAX-Frameworks
22 Plugins
23 Multimedia
24 Java
25 Serverseitige Technologien
26 JavaScript goes .NET
27 Code schützen
28 Top Secret: Passwortschutz
29 Signierte Skripte
30 JavaScript und Sicherheit
31 Navigation
32 Warenkorb
33 JavaScript-Bibliotheken
34 Referenz
35 Quellen im Web
36 Die Zukunft von JavaScript
Index
Ihre Meinung?

 <<   zurück
JavaScript und AJAX von Christian Wenz
Das umfassende Handbuch
Buch: JavaScript und AJAX

JavaScript und AJAX
839 S., mit DVD, 39,90 Euro
Rheinwerk Computing
ISBN 3-89842-859-1
gpKapitel20 Web Services
 gp20.1 Was sind Web Services?
  gp20.1.1 Verteiltes Arbeiten
  gp20.1.2 WSDL
  gp20.1.3 Web Services aufrufen
 gp20.2 Web Services mit JScript.NET
  gp20.2.1 Installation
  gp20.2.2 Programmierung
 gp20.3 Mit dem Internet Explorer auf Web Services zugreifen
 gp20.4 Mit Mozilla auf Web Services zugreifen


Rheinwerk Computing

20.3 Mit dem Internet Explorer auf Web Services zugreifen toptop

Mit der Version 5 des Internet Explorer hat Microsoft so genannteBehaviors(englisch für »Verhalten«) eingeführt. Das ist nichts anderes als eine HTML-Anweisung, mit der Sie (unter anderem) die Voraussetzungen schaffen können, auf Web Services auch aus dem Browser heraus zuzugreifen.

Sie benötigen dazu zunächst eine.htc-Datei, die auf dem Microsoft-Webserver unter der URLhttp://msdn.microsoft.com/archive/en-us/samples/internet/behaviors/library/webservice/ zum Download zur Verfügung steht. Hinter der Dateiwebservice.htc verbergen sich fast 2300 Zeilen JavaScript-Code. Darin sind die gesamten notwendigen Funktionalitäten – Kommunikation mit dem Web Service, Dekodierung des XML-Rückgabewerts des Web Service und so weiter – implementiert. Kopieren Sie diese Datei in dasselbe Verzeichnis, in dem Sie auch die nächste Datei erstellen werden: die HTML-Maske zum Aufrufen, Ausführen und Auswerten des Web Service.

Zunächst müssen Sie das Web-Service-Behavior einbauen. Verwenden Sie dazu einfach ein<div>-HTML-Element, und setzen Sie denstyle-Parameter auf"behavior:url(webservice.htc)":

<div    ></div>

Als Nächstes benötigen Sie die Maske zum Abfragen des Web Service, d. h. ein Eingabefeld für die zu überprüfende Zahl und eine Schaltfläche zum Starten der Überprüfung:

<form>   Bitte Zahl eingeben:   <input type="text" name="zahl" size="5" />   <input type="button" value="Prüfen"          /></form>

Für die Ausgabe des Ergebnisses verwenden wir ein<p>-Element:

<p>---</p>

Wie Sie sehen können, wird die Funktioncheck() aufgerufen, wenn Sie auf die HTML-Schaltfläche klicken. In dieser Funktion wird eine Reihe von Schritten durchgeführt.

Da zwischen dem Aufruf des Web Service und der Rückgabe des Ergebnisses einige Zeit verstreichen kann, wird zunächst ein Text ausgegeben, der den Besucher um ein wenig Geduld bittet:

document.getElementById("ausgabe").innerText =   "Bitte warten ...";

Dann greifen Sie auf das Behavior zu. Da es denid-Parameter"PrimzahlService" hat, können Sie direkt überPrimzahlService von JavaScript aus darauf zugreifen. Mit der MethodeuseService() verbinden Sie das Behavior mit dem Web Service. Dazu übergeben Sie zwei Parameter:

1. die WSDL-Beschreibung des Web Service; wie Sie wissen, erhalten Sie diese, indem Sie an die .asmx-Datei einfach ?WSDL anhängen.
       
2. die Bezeichnung, unter der Sie auf den Web Service zugreifen möchten; "Primzahlen" ist eine gute Wahl.
       
PrimzahlService.useService(   "Primzahlen.asmx?WSDL",   "Primzahlen");

Im nächsten Schritt rufen Sie schließlich die gewünschte Methode des Web Service auf. Dazu müssen Sie aufPrimzahlService.Primzahlenzugreifen (beachten Sie, wie der zweite Parameter vonuseService() hier ins Spiel kommt) und dann die MethodecallService() aufrufen.Die folgenden drei Parameter werden erwartet:

1. die Funktion, die beim Eintreffen der Ergebnisse aufgerufen werden soll
       
2. der Name der aufzurufenden Methode (hier: istPrimzahl())
       
3. der oder die Parameter, die übergeben werden sollen
       
PrimzahlService.Primzahlen.callService(   ergebnis,   "istPrimzahl",   f.elements["zahl"].value);

Das Vorgehen beim Aufrufen des Web Service wird auch alsasynchronbezeichnet. Das Aufrufen und Auswerten des Web Service wird nicht in einem Aufwasch (synchron) erledigt, sondern in zwei Schritten; als ersten Parameter übergeben Sie ancallService eine Referenz (also: keine Anführungszeichen, keine runden Klammern) auf die Funktion, die dann das Ergebnis des Web Service erhält.

Diese Funktion muss nun noch geschrieben werden. Als Parameter enthält sie ein Objekt, das unter anderem die folgenden Eigenschaften aufweist:

gp  error – ein boolescher Wert, der angibt, ob beim Aufruf des Web Service ein Fehler aufgetreten ist (true) oder nicht (false).
gp  value – das Ergebnis des Web Service, sofern vorhanden (sonst undefined).

Die folgende Funktion überprüft den Rückgabewert und gibt entweder eine Fehlermeldung oder"eine Primzahl" oder"keine Primzahl" aus, je nach Ergebnis des Web-Service-Aufrufs:

function ergebnis(wert) {   if (wert.error) {      ausgabe.innerText = "Fehler!";   } else {      ausgabe.innerText = (wert.value == true) ? "" : "k";      ausgabe.innerText += "eine Primzahl";   }}

Nachfolgend sehen Sie noch einmal das komplette Listing. Es zeigt, dass Sie mit nur wenig Aufwand einen Web Service in Ihre HTML-Dokumente einbauen können – vorausgesetzt, Ihre Besucher benutzen einen Internet Explorer ab Version 5:

<html><head><title>Web Service</title><script type="text/javascript"><!--function check(f){   document.getElementById("ausgabe").innerText =      "Bitte warten ...";   PrimzahlService.useService(      "Primzahlen.asmx?WSDL",      "Primzahlen");   PrimzahlService.Primzahlen.callService(      ergebnis,      "istPrimzahl",      f.elements["zahl"].value);}function ergebnis(wert) {   if (wert.error) {      ausgabe.innerText = "Fehler!";   } else {      ausgabe.innerText = (wert.value == true) ? "" : "k";      ausgabe.innerText += "eine Primzahl";   }}//--></script></head><div    ></div><form>   Bitte Zahl eingeben:   <input type="text" name="zahl" size="5" />   <input type="button" value="Prüfen"          /></form><p>---</p></body></html>

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 20.8    1021 ist also tatsächlich eine Primzahl.

Wenn Sie einen Web Service aufrufen, der nicht auf Ihrem Webserver liegt, hier noch ein Warnhinweis: Aus Sicherheitsgründen unterbindet der Internet Explorer in der Standardeinstellung den Zugriff eines Skripts auf Dokumente von einer anderen Domain. Um dies zu deaktivieren, wählen SieExtras NInternetoptionen NSicherheit NStufe anpassen NVerschiedenes NAuf Datenquellen über Domaingrenzen hinweg zugreifen. Gehen Sie aber nicht davon aus, dass Ihre Benutzer auch diesen Schritt tun!

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 20.9    Web Services von anderen Domains aufrufen

 <<   zurück
  
 Zum Rheinwerk-Shop
Neuauflage: JavaScript
Neuauflage: JavaScript
bestellen
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: jQuery






 jQuery


Zum Rheinwerk-Shop: Einstieg in JavaScript






 Einstieg in JavaScript


Zum Rheinwerk-Shop: Responsive Webdesign






 Responsive Webdesign


Zum Rheinwerk-Shop: Suchmaschinen-Optimierung






 Suchmaschinen-
 Optimierung


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen |Datenschutz |Impressum

Rheinwerk Verlag, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77,service@rheinwerk-verlag.de

Cookie-Einstellungen ändern



[8]ページ先頭

©2009-2025 Movatter.jp