XMLHttpRequest offline verwenden? Bitte kurz testen!
![](/uploads/default_avatar/thumb/missing.png)
- javascript
0 Count Zero0 Shadowcrow0 schneemann0 molily
0 Marc Reichelt
0 molily
0 Marc Reichelt
Hallo an alle,
ich möchte gerne eine bzw. mehrere XML-Dateien mit JavaScript laden.
Dies soll sowohl online als auch offline funktionieren (vor allem offline!).
Hierzu habe ich zwei Testdateien erstellt, eine HTML- und eine XML-Datei, die ihr hier findet: http://marcreichelt.de/misc/selfhtml/xmlhttprequest/
Bitte ladet diese kurz herunter und schreibt mir, ob die XML-Datei geladen werden kann, wenn ihr die HTML-Datei offline öffnet.
Bereits getestet habe ich dies mit folgenden Browsern:
Firefox 2 (Linux) - funktioniert
Firefox 2 (Windows XP) - funktioniert
Konqueror 3.5.8 (Linux) - funktioniert
Internet Explorer 8 Beta (Windows XP) - funktioniert NICHT
Insbesondere interessant wären neuere Versionen von Opera, Safari sowie IE in Version 6 und 7.
Und dann würde ich gerne wissen, wie man das Laden einer XML-Datei im Offline-Modus in den Browsern, wo es auf meinen kurzen Test hin nicht geht, hinbekommt.
Grüße & vielen Dank
Marc Reichelt || http://www.marcreichelt.de/
Insbesondere interessant wären neuere Versionen von Opera, Safari sowie IE in Version 6 und 7.
ich habe es mit opera 9.24 und ie 5.0 getestet, da geht es
hi $name,
opera 9.26 - OK
IE6 - OK
Netscape 2006 - OK (der am 1. märz verstorben ist)
IE8 BETA1 / IE7 (emuliert vom 8er) - zickt (obwohl ich alle sicherheitseinstellungen auf den niedrigsten level gesetzt habe, und auf nachfrage auf "allow blocked contents"):
Webpage Script Errors
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; FDM; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Timestamp: Fri, 4 Apr 2008 18:46:34 UTC
0.
Message: Zugriff verweigert
Line: 31
Char: 6
Code: 0
URI: file:///C:/area51/SELF%20TEST/xmlhttprequest_offline.html
gruss
shadow
Hallo,
Safari 3.1 und Firefox 2 unter Mac OS 10.2 gehen.
Ciao
Hallo,
Und dann würde ich gerne wissen, wie man das Laden einer XML-Datei im Offline-Modus in den Browsern, wo es auf meinen kurzen Test hin nicht geht, hinbekommt.
Ich weiß nicht, ob das besser geht, aber es gibt noch die load-Methode bei XMLDocument im Gecko, solche Objekte erzeugt man mit document.implementation.createDocument. Im IE gibts das ActiveX-Objekt Microsoft.XMLDOM ebenfalls mit der load-Methode, soweit ich mich erinnere (siehe Archiv oder http://www.quirksmode.org/dom/importxml.html).
Mathias
Hallo molily,
Ich weiß nicht, ob das besser geht, aber es gibt noch die load-Methode bei XMLDocument im Gecko, solche Objekte erzeugt man mit document.implementation.createDocument. Im IE gibts das ActiveX-Objekt Microsoft.XMLDOM ebenfalls mit der load-Methode, soweit ich mich erinnere (siehe Archiv oder http://www.quirksmode.org/dom/importxml.html).
Das klingt definitiv interessant.
Durch die Probleme des IE7 / IE8 mit dem XMLHttpRequest werde ich jetzt wohl doch direkt JS-Dateien nachladen (das scheint offline besser zu funktionieren als mit XML).
Grüße
Marc Reichelt || http://www.marcreichelt.de/
Hallo,
Durch die Probleme des IE7 / IE8 mit dem XMLHttpRequest werde ich jetzt wohl doch direkt JS-Dateien nachladen (das scheint offline besser zu funktionieren als mit XML).
Solange du keinen speziellen Grund hast, XML zu verwenden, solltest du es in diesem Zusammenhang ohnehin nicht tun. Wenn du einfacher auf die Daten zugreifen kannst, wenn sie direkt in JSON im Script untergebracht sind, dann tu es.
Wobei man natürlich zwischen ursprünglicher Datenspeicherung und Datenübermittlung für das JavaScript unterscheiden sollte. JSON ist nicht unbedingt das Format, um die Datenbasis selbst zu speichern, aber JSON ist relativ einfach on-the-fly generierbar für JavaScript-Anwendungen.
Mathias
Hallo molily,
Solange du keinen speziellen Grund hast, XML zu verwenden, solltest du es in diesem Zusammenhang ohnehin nicht tun. Wenn du einfacher auf die Daten zugreifen kannst, wenn sie direkt in JSON im Script untergebracht sind, dann tu es.
JSON kannte ich bislang noch nicht (bzw. nicht explizit unter diesem Namen).
Sieht interessant aus. Ist die Notation in JSON besser (performanter) als beispielsweise folgende Notation?
results = new Array(
new Result(0, 'url0'),
new Result(1, 'url1'),
new Result(2, 'url2')
);
index = new Array(
new Index(0, 'a'),
new Index(1, 'b'),
new Index(2, 'c'),
new Index(3, 'd'),
new Index(4, 'e'),
...
);
Grüße
Marc Reichelt || http://www.marcreichelt.de/
Hi,
was ist eigentlich der Hintergrund dieses Threads XML ist doch kein Problem. Das Problem dabei ist nur, dass es nicht domainübergreifend funktioniert.
JSON kannte ich bislang noch nicht (bzw. nicht explizit unter diesem Namen).
Und genau dafür ist dann JSON geeignet.
Ist ein hochtrabender Name, eigentlich ist es nur ein Array, das man direkt per JS einlesen kann.
Guck mal hier, das ist genau eine Anwendung in der Art, die das nutzt:
http://www.rusch-hour.com/sms2web-demo.html
die Daten holt sich Gerät aus:
http://www.rusch-hour.com/sms2web/1.js
Gruß
Reiner
Hallo,
Ist ein hochtrabender Name, eigentlich ist es nur ein Array, das man direkt per JS einlesen kann.
Das stimmt so nun wirklich nicht. JSON heißt ausgeschrieben JavaScript Object Notation. Man notiert also allgemein erst einmal Objekte auf diese Weise. Arrays sind nur eine unterart von Objekten.
Jeena
Hallo,
Ist die Notation in JSON besser (performanter) als beispielsweise folgende Notation?
JSON sind erstmal Strings, Numbers und Booleans untergebracht in Arrays und Objects, die mit einer Kurzschreibweise notiert werden. Dann kann man natürlich noch weitere Objekte darin erzeugen z.B. mit eigenen Konstruktoren. Insofern ist die Frage unpassend, weil man dann höchstens eine Kurzschreibweise notieren kann, aber im Programm dasselbe passiert, also auch kein nennenswerter Performancegewinn beim Ausführen zu verzeichnen ist.
results = new Array(
new Result(0, 'url0'),
new Result(1, 'url1'),
new Result(2, 'url2')
);
Einen solchen Array mit eigenen Objekten kann man nicht signifikant kürzer schreiben. Wobei man die Rohdaten in einem Array speichern könnte: ['url0', 'url1', ... ], um den Rest daraus zu generieren.
Mathias
--
[SELFHTML aktuell Weblog](http://aktuell.de.selfhtml.org/weblog/)
Hallo molily,
Einen solchen Array mit eigenen Objekten kann man nicht signifikant kürzer schreiben. Wobei man die Rohdaten in einem Array speichern könnte: ['url0', 'url1', ... ], um den Rest daraus zu generieren.
Okay. Immerhin habe ich doch eine Verwendung dafür - beispielsweise übergebe ich in mehreren Dateien Arrays an Konstruktoren, da ist diese Kurzschreibweise doch sehr elegant. :-)
Grüße
Marc Reichelt || http://www.marcreichelt.de/