php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.10.2011, 15:14  
Erfahrener Benutzer
 
Registriert seit: 21.09.2010
Beiträge: 143
PHP-Kenntnisse:
Anfänger
Zulakis befindet sich auf einem aufstrebenden Ast
Standard falscher request.status bei XMLHttpRequest

Moin,

ich benutze ein XMLHttpRequest um im Hintergrund Daten neu zu laden.

Wenn ich
PHP-Code:
    header("HTTP/1.1 304 Not Modified"); 
benutze, wird mir zwar im Firebug der 304er Status angezeigt, es wird allerdings ein request.status 200 vom XMLHttpRequest gemeldet.
Wodran liegt das? Womit kann ich den wirklichen request.status herausfinden?

PHP-Code:
<script language="javascript" type="text/JavaScript">
var 
request = (window.XMLHttpRequest) ? new XMLHttpRequest() : (window.ActiveXObject ? new window.ActiveXObject("Microsoft.XMLHTTP") : false);
var 
url "url.php?params";
request.open("GET"urltrue);
request.onreadystatechange updatePage;
request.send(null);

        function 
updatePage() {
                if (
request.readyState == 4) {
                       
alert(request.status == 200);
                }
        }
</script> 

Geändert von Zulakis (14.10.2011 um 15:18 Uhr).
Zulakis ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.10.2011, 15:51  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
Beiträge: 701
PHP-Kenntnisse:
Anfänger
jspit wird schon bald berühmt werden
Standard

Der 304er kommt nach meinen Erkenntnisstand vom header wenn der Inhalt aus dem cache kommt, jedoch bevor
readyState auf 4 (=complete) geht, danach ist der status ein 2xx (soweit alles ok ist).

Verstehe jedoch den Sinn deines header's nicht.
jspit ist offline   Mit Zitat antworten
Alt 14.10.2011, 17:29  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.865
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

insofern er dem Script bspw. einen hash übergibt der zu letzt übertragenden Daten und diese sich nicht verändert haben, kann man durchaus mit not-modified header responses arbeiten, insbesondere wenn (massiv) viele Daten nachgeladen werden, oder gar embedded binary ( base64 strings von status bildern ) ausgetauscht werden.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 14.10.2011, 19:18  
Erfahrener Benutzer
 
Registriert seit: 21.09.2010
Beiträge: 143
PHP-Kenntnisse:
Anfänger
Zulakis befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von tr0y Beitrag anzeigen
insofern er dem Script bspw. einen hash übergibt der zu letzt übertragenden Daten und diese sich nicht verändert haben, kann man durchaus mit not-modified header responses arbeiten, insbesondere wenn (massiv) viele Daten nachgeladen werden, oder gar embedded binary ( base64 strings von status bildern ) ausgetauscht werden.
genau.


Würde mich freuen wenn jemand ne Idee hat wie man dieses Verhalten vermeiden kann, sonst muss ich den unglücklichen weg einer magic number nehmen..
Zulakis ist offline   Mit Zitat antworten
Alt 14.10.2011, 19:50  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
Beiträge: 701
PHP-Kenntnisse:
Anfänger
jspit wird schon bald berühmt werden
Standard

Was ist an dem Verhalten nicht in Ordnung? Oder möchtest du wissen, ob die Daten aus dem Cache kommen?
jspit ist offline   Mit Zitat antworten
Alt 14.10.2011, 20:10  
Erfahrener Benutzer
 
Registriert seit: 21.09.2010
Beiträge: 143
PHP-Kenntnisse:
Anfänger
Zulakis befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von jspit Beitrag anzeigen
Was ist an dem Verhalten nicht in Ordnung? Oder möchtest du wissen, ob die Daten aus dem Cache kommen?
Bei nem vom Server gesendeten 304er Header gibt mir request.status nen 200er aus, ich würde gerne den vom Server gesendeten Header sehen.
Zulakis ist offline   Mit Zitat antworten
Alt 14.10.2011, 20:16  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
Beiträge: 701
PHP-Kenntnisse:
Anfänger
jspit wird schon bald berühmt werden
Standard

Nochmal meine erste Antwort anders formuliert:
Der 304 Status kommt doch (du hast ihn ja nach eigener Aussage gesehen), steht jedoch am Ende (ready.state == 4) nicht mehr zur verfügung, dort ist er (meist) 200, und das ist auch ok so.

Edit: onreadystatechange dürfte vorher schon paar mal kommen, bevor ready.state == 4 ist!

Geändert von jspit (14.10.2011 um 20:22 Uhr).
jspit ist offline   Mit Zitat antworten
Alt 17.10.2011, 21:34  
Erfahrener Benutzer
 
Registriert seit: 17.08.2010
Beiträge: 216
PHP-Kenntnisse:
Fortgeschritten
Dormilich befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von jspit Beitrag anzeigen
Edit: onreadystatechange dürfte vorher schon paar mal kommen, bevor ready.state == 4 ist!
bei jedem einzelnen readyState-Wechsel. das wird halt nur durch entsprechende if() Bedingungen (a la if (xhr.readyState == 4 && xhr.status == 200)) gefiltert, sodass es i.d.R. ungenutzt vorbeigeht.

und nach W3C stehen die Response-Header ab readyState 3 zur Verfügung.
Dormilich ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] In PHP einen JS mittels XMLHTTPREQUEST in DIV Problem aauerswald JavaScript, Ajax und mehr 6 19.07.2011 17:50
Felder Dynamisch erzeugen - Senden Button sitzt an falscher Stelle Kia JavaScript, Ajax und mehr 16 05.07.2011 23:54
XMLHttpRequest "updatet" nicht richtig Bono JavaScript, Ajax und mehr 6 16.02.2011 19:32
XMLHttpRequest: Vom Browser gesendete Daten komprimieren Griffith JavaScript, Ajax und mehr 3 04.02.2011 16:43
[Erledigt] Active User Logging (mittels XMLHttpRequest angestoßen) Matthias N. Software-Design 5 01.11.2010 10:30
XMLHttpRequest funktionieren in Safari und Chrome nicht mattla93 JavaScript, Ajax und mehr 8 16.04.2010 22:13
Login von "außerhalb" per xmlhttpRequest kn0wledge PHP Tipps 2009 0 11.12.2009 23:02
[Erledigt] falscher md5 string roest PHP Tipps 2009 9 27.07.2009 16:11
Inhalt aus XMLHttpRequest für getElementsByClassName nutzen regsnerven JavaScript, Ajax und mehr 12 19.07.2009 17:01
xmlHttpRequest Chicoloco PHP-Fortgeschrittene 2 26.03.2008 09:30
Acces Denied bei falscher Eingabe PHP Tipps 2005 7 09.03.2005 09:21
Falscher Pfad zu Mysql charset? PHP Tipps 2005 0 16.02.2005 20:34
Falscher Pfad! Aber wie sonst??? CHRIS PHP Tipps 2005 6 04.01.2005 23:44
SimpleXML - Falscher content/type :?: PHP Tipps 2004 6 01.09.2004 16:52

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
304 request vermeiden, xhr status richtig, request status 200, xmlhttprequest verhalten bei falscher url, xmlhttprequest daten komprimieren, xmlhttprequest request status 0, php url xmlhttprequest, javascript xmlhttprequest firebug status = 200, ajax falscher status, javaskript div-wechsel urlanzeige

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:40 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum