Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Sonstige Fragen » jQuery - AJAX aktualisiert sich nicht » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen jQuery - AJAX aktualisiert sich nicht
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
InformaTiger InformaTiger ist männlich
Tripel-As


images/avatars/avatar-77.gif

Dabei seit: 19.02.2013
Beiträge: 228
Herkunft: Südtirol

jQuery - AJAX aktualisiert sich nicht Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo,
ich hoffe es gibt hier im Board einige Webfreaks die mir bei folgendem Problem weiterhelfen können:

Ich habe mir vor einiger Zeit eine Art CMS-System selbst geschrieben. Mittels PHP kann ich mir den Text (Code) aus einer Textbox in eine Datei schreiben. Das funktioniert soweit nur wenn ich die Datei mittels jQuery wieder einlesen möchte, bekomme ich immer die Alte Version obwohl in die Datei richtig geschrieben wurde. Auch beim aktualisieren der Website bleibt die Alte Version trotz dem Löschen des Caches.

Der Code zum Laden per AJAX:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
$("#open_file").change(function()
	{
		var xmlhttp;
		if (window.XMLHttpRequest)
		{// code for IE7+, Firefox, Chrome, Opera, Safari
			xmlhttp=new XMLHttpRequest();
		}
		else
		{// code for IE6, IE5
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
		
		xmlhttp.open("GET", $(this).val(), false);
		xmlhttp.setRequestHeader("If-Modified-Since", $.now());
		xmlhttp.send();
		
		$("#editor").val(xmlhttp.responseText);
	});


PS: der Code funktionierte Vorher geschätzte 2 Monate.

Mfg
InformaTiger

__________________
Why do Java developers wear glasses? Because they can't C#
02.05.2014 16:29 InformaTiger ist offline Beiträge von InformaTiger suchen Nehmen Sie InformaTiger in Ihre Freundesliste auf
Airblader Airblader ist männlich
Doppel-As


Dabei seit: 03.03.2013
Beiträge: 138
Herkunft: München

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Wenn du schon jQuery nutzt, wieso dann nicht gleich richtig? jQuery kommt mit einem cross-browser-kompatiblem $.get() bzw. $.ajax.

Ich weiß auch nicht, warum du dir diese Linux-Kernel-Klammernsetzung antust, aber in Javascript ist sie enorm unüblich. Für eine synchrone Vorgehensweise sehe ich übrigens auch keine Argumente. Also erstmal umschreiben:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
$("#open_file").change(function () {
    $.ajax({
        type: "GET",
        url: $(this).val(),
        ifModified: true
    }).done(function (data) {
        $('#editor').val(data);
    });
});


Für dein Problem könnte es verschiedene Ursachen geben – der Server könnte den Header einfach ignorieren, zum Beispiel. Etwas typischer ist, dass deine Schreiboperation einfach noch nicht fertig ist, wenn du versuchst das Dokument zu laden.

Solltest du letzten Punkt definitiv ausschließen können, könnte ein Cache-Problem vorliegen. Versuche doch einfach mal das:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
$("#open_file").change(function () {
    $.ajax({
        type: "GET",
        url: $(this).val(),
        cache: false
    }).done(function (data) {
        $('#editor').val(data);
    });
});


__________________
The best thing about a boolean is that even if you're wrong, you're only off by a bit.
02.05.2014 17:14 Airblader ist offline Beiträge von Airblader suchen Nehmen Sie Airblader in Ihre Freundesliste auf
InformaTiger InformaTiger ist männlich
Tripel-As


images/avatars/avatar-77.gif

Dabei seit: 19.02.2013
Beiträge: 228
Herkunft: Südtirol

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich habe den XMLHttpRequest verwendet weil ich es in einem Tutorial gesehen hatte. Offensichtlich aber der falsche Weg gewesen, Punkt eins hat die Funktion gleich versaut wie meine Version. Allerdings funktioniert Punkt 2, ich hatte aber auch des Öfteren versucht den Cache zu löschen keine Ahnung wiso es dann immer noch nicht ging.

Danke.

Mfg
InformaTiger

__________________
Why do Java developers wear glasses? Because they can't C#
02.05.2014 17:21 InformaTiger ist offline Beiträge von InformaTiger suchen Nehmen Sie InformaTiger in Ihre Freundesliste auf
Airblader Airblader ist männlich
Doppel-As


Dabei seit: 03.03.2013
Beiträge: 138
Herkunft: München

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Immerhin funktioniert's nun! Daumen hoch

__________________
The best thing about a boolean is that even if you're wrong, you're only off by a bit.
02.05.2014 17:24 Airblader ist offline Beiträge von Airblader suchen Nehmen Sie Airblader in Ihre Freundesliste auf
InformaTiger InformaTiger ist männlich
Tripel-As


images/avatars/avatar-77.gif

Dabei seit: 19.02.2013
Beiträge: 228
Herkunft: Südtirol

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Und wenn wir schon dabei sind, was du mit Linux-Kernel-Klammersetzung meinst leuchtet mir nicht ein.

Mfg
InformaTiger

__________________
Why do Java developers wear glasses? Because they can't C#

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von InformaTiger: 02.05.2014 17:38.

02.05.2014 17:33 InformaTiger ist offline Beiträge von InformaTiger suchen Nehmen Sie InformaTiger in Ihre Freundesliste auf
Airblader Airblader ist männlich
Doppel-As


Dabei seit: 03.03.2013
Beiträge: 138
Herkunft: München

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich kannte die Klammernsetzung

code:
1:
2:
3:
4:
function foo()
    {
        console.log("Hello World");
    }


vor allem von einigen Beispieln aus dem Linux-Kernel. Ich habe aber eben mal nachgeschaut – das müssen falsch formatierte Patches gewesein sein, der Linux-Kernel-Coding-Style ist anders.

Den Grund, Klammern so zu setzen, sehe ich nicht und ich empfinde ihn als unglaublich platzverschwendend. Ist aber am Ende die Sache des Entwicklers bzw. des Teams. Augenzwinkern In Javascript ist diese Klammernsetzung jedenfalls sehr unüblich, typischerweise sieht man dort eher

code:
1:
2:
3:
function foo() {
    console.log("Hello World");
}


__________________
The best thing about a boolean is that even if you're wrong, you're only off by a bit.
02.05.2014 18:39 Airblader ist offline Beiträge von Airblader suchen Nehmen Sie Airblader in Ihre Freundesliste auf
InformaTiger InformaTiger ist männlich
Tripel-As


images/avatars/avatar-77.gif

Dabei seit: 19.02.2013
Beiträge: 228
Herkunft: Südtirol

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Achso, ok. Ich verstehe, ich empfinde meine Klammernsetzung aber als übersichtlicher. Jedenfalls für mein Auge...

Mfg
InformaTiger

__________________
Why do Java developers wear glasses? Because they can't C#
02.05.2014 18:51 InformaTiger ist offline Beiträge von InformaTiger suchen Nehmen Sie InformaTiger in Ihre Freundesliste auf
Airblader Airblader ist männlich
Doppel-As


Dabei seit: 03.03.2013
Beiträge: 138
Herkunft: München

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Wie gesagt, Code-Style ist eine eigene Entscheidung, auch wenn es sprachenübliche Konventionen gibt. Wichtig ist nicht welchen Codestyle man wählt, sondern dass man diesen dann konsistent verwendet. Daumen hoch

__________________
The best thing about a boolean is that even if you're wrong, you're only off by a bit.
02.05.2014 18:54 Airblader ist offline Beiträge von Airblader suchen Nehmen Sie Airblader in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Sonstige Fragen » jQuery - AJAX aktualisiert sich nicht