Harlequin: Permalinks und Ajax

Beitrag lesen

Yerf!

die Theorie hast du soweit schon hinreichend dargestellt, wo hapert es denn bei der Umsetzung?

Ich befürchte es liegt bei der Kombination der dargestellten Ansätze, so dass dabei *alle* gestellten Bedingungen erfüllt sind. Ich sehe da gerade aber auch keinen Weg...

Beim Laden der Seite musst du location.hash auslesen und, sofern gesetzt, die entsprechende Seite laden. Innerhalb der Anwendung musst du location.hash »überwachen«, also regelmäßig auf Änderungen prüfen.

Dies geht aber nur mittels JS. Ein Link mit einem Hash ist somit als Perma-Link nicht brauchbar, da dieser nur in die JS-only Version führt...

Eine JS-lose Version mittels Path-Info ist zwar schön, aber nicht mit der AJAX-version kombinierbar, da durch das ändern der URL der Browser neu läd...

mit php kann man dem user unterverzeichnisse vorgaukeln wo keine sind. leider kann man dieses 'unterverzeichniss' in der adresszeile via js nicht ändern ohne tatsächlich in eine andere seite zu springen. (oder?)

Nein, diese URI würde auch in dem Fall genutzt, dass JavaScript nicht verfügbar ist (also der Fallback bei <a href="statischeURI" onclick="machsMitJavaScript(); return false">).

Das funktioniert für Links innerhalb der Seite, aber nicht, wenn man die URL aus der Adresszeile kopiert und weitergibt.

also, so wie es scheint gibt es keine saubere, optimale lösung für alle probleme die diese technik mit sich bringt, oder?

Es gibt einige Frameworks, die das Problem der History zu lösen versuchen, sodass der Back-Button hinreichend funktioniert.

Ich denke aber mal, dass diese einfach JS voraussetzen um Probleme zu umgehen (oder sich nicht um die Problematik der Perma-Links kümmern...)

Hm, was mir noch einfällt... keine AHnung obs nur ne blöde Idee ist:

Wenn man in der Session ablegt, dass der Browser JS kann könnte man doch alle Folgeabfragen die eine Path-Info haben mit "no content" beantworten. Dadurch sollte der Browser die Seite doch nicht neu aufbauen wenn man die URL ändert, oder?

Gruß,

Harlequin

--
<!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->