Automatische Permalinks in der Adresszeile

Ok, es ist einzusehen, dass besonders bei mobilen Geräten die History ein Problem darstellt. Trotzdem automatische Permalinks, die aber nicht in der History gespeichert werden, erzeugt man nicht mit

window.location.hash=xy

sondern mit

location.replace('#'+xy)

.

Mit der Unterscheidung der beiden Funktionen wäre es auch möglich, “große Sprünge” zu detektieren und z.B. nur diese in der History zu speichern.
Ändert man den Permalink von Hand, bekommt man zwangsweise einen Eintrag in die History.

Auszuprobieren bei der OpenTopoMap.

Nachtrag: Im Android-Browser existiert für location.replace() anscheinend ein Bug, weshalb der automatische Permalink nicht funktioniert.

Denkt bitte auch an so “schöne” Erfindungen wie “intelligente” Browser-Historys, die je nach Rechenleistung alte History-Einträge löschen. Da könnte sowas es noch schlimmer machen (ich will es nicht ausprobieren).

Finde ich sehr gut!

Gruß,
Mondschein

Hallo Mondschein, Max

Ich finde automatische Nachführung der Adresszeile des Browsers sehr ungünstig.

Ich setze einen Permalink dann, wenn ich ein Gebiet näher untersuchen will. Dabei kommt es durchaus vor, dass ich den Zoom und/oder den Ausschnitt ändere, um Details zu sehen / einen Überblick zu bekommen oder Varianten an anderer Stelle zu prüfen. Dennoch will ich bei einem Reload wieder meinen ursprünglichen Ausschnitt sehen.

Bei der OSM2World-Map wird z.B. eine neuer Permalink gesetzt, wenn man die Ansicht dreht (nicht jedoch bei Verschieben/Zoomen). Auch wenn ich diese spezielle Situation verstehe, stört sie mich doch, da ich nicht mehr direkt zu meiner Ausgangssituation zurück kehren kann.

Die Tatsache, dass dabei der Browser-Verlauf aufgebläht wird, betrachte ich dabei als weiteren Nachteil.

Edbert (EvanE)

Ich hoffe, das Problem gelöst zu haben: Kopiert man einen automatischen Permalink und lädt diesen in einem neuen Tab (oder verschickt ihn per Mail oder stellt ihn in ein Forum…), wird für den ersten Permalink ein Eintrag im Browser-Verlauf gespeichert. Bewegt man dann die Karte, erscheint der Zurück-Knopf des Browsers und man kann über diesen sofort wieder zum ursprünglichen Permalink zurückkehren.

http://opentopomap.org/map#49.43688|11.18683|10

Ich kenne mich damit selbst nicht aus, aber mir wurde gesagt, dass sich das vermeiden lässt.

Gruß,
Mondschein

Das halte ich für Quatsch. Wenn du einen link klickst ändert sich logischerweise die URL Bar. Warum soll es Javascript nicht tun dürfen wenn du eine aktion im Browser ausführst. Mittlerweile verschwimmen die Bedetungen von “Link klicken” und “irgendwas im browser klicken wodurch eine Javascript Aktiion ausgeführt wird”.

ich denke es ist deutlich benutzerfreundlicher für normal benutzer einen link aus der Browserleiste zu kopieren als einen link namens “Permalink” zu suchen, mit dessen namen die menschen nicht einmal etwas anfangen können. Und leute klicken keine Share buttons - sie kopieren links aus der adressleiste und verschicken sie - und wundern sich dann, dass der link sie nicht dahin führt wo sie waren als sie ihn kopiert haben. (ich erinnere mich gerade an Zeiten von Frames.)

Ja Müllt die browserhistory voll. ist der einzige nachteil den ich nachvollziehen kann. (Durchsucht ihr wirklich so oft eure Browser history?)

mit dem Zurückbutton habe ich in der umsetzung, die ich von leaflet-hash kenne kein problem - sollte also technisch machbar sein, dass egal wie oft man die karte verschiebt man mit einen klick auf den zurück button wieder dahin kommt wo man wirklich her kam.

Ja möglicherweise kann man eine einstellung draus machen. Man kann auch aus jeder keinigkeit eine einstellung machen. Und etwa 1% der benutzer wird sie auch finden oder umstellen. Das wichtigste bei Einstellungen ist, dass man sich den Standartwert gut überlegt.

Du denkst auch an die Zurück-Taste, Eingabevervollständigung der Adressleiste und solchen Schrott (den man afaik auch nicht deaktivieren kann…)?

Das eine ist eine Aktion des Anwenders - er ruft explizit eine neue Webseite auf. Zu einer Webseite gehört eine URL. Das Verschieben eines Kartenausschnittes aber ist nach wie vor die gleiche Webseite.

Der Webseitenbetreiber sollte das nicht mit Javascript “nicht tun sollen dürfen” weil: Meine Begründung hast Du ja in Teilen mitzitiert :wink:

Und das ist keine gute Entwicklung. Erkläre mal Webneulingen die Bedienung von Webseiten - bist Du nicht damit gewachsen wird es verdammt schwierig Webseiten zu bedienen, die Ajax mit dem üblichen Aufruf mittels HTTP-GET/POST unbedacht und unglücklich vermischen. Du magst es nicht als Problem empfinden wenn das eine mal sich ein Rädlein dreht und dann “gespeichert” eingeblendet wird, während das nächste Mal die ganze Seite neu geladen wird um diese Info anzuzeigen - andere schon. Hierbei geht es gar nicht darum, ob Du oder ich diese Leute nachvollziehen können, ob wir selbst da ein Problem sehen oder nicht. Fakt ist, dass diese Leute nicht wenige sind und solche Aktionen diese bei der Bedienung verunsichern.

Das Wording lässt sich ändern (viele angebliche Probleme bei Webseite/Applikationen lassen sich mittels Wording und Gestaltung lösen). Und man kann das auch ganz anders lösen - einen Vorschlag hatte ich ja bereits geschrieben: Würde ich diese Seite betreiben, gäbe es diese mitgeführte URL, ohne dass ich die Adresszeile ändere oder einen Link “Permalink” anklicken muss.

Und Du willst diese Unsicherheit bei URLs aus Zeiten der Framesets aus meiner Sicht gerade wieder einführen: Eben weil eine solche Seite mit einer sich selbst verändernden Adresszeile aktuell sich anders verhält als andere.

Jetzt hat die Hauptseite tatsächlich den Permalink eingeführt: http://www.openstreetmap.org/#map=13/49.4505/11.0886

Hm, das “Vollmüllen” des Verlaufs wurde anscheinend nicht gelöst.
Aber wenigstens kommt man mit dem Zurück-Knopf im Browser direkt zurück und muss nicht alle OSM-Permalink-Seiten einzeln zurück gehen.

Gruß,
Mondschein

Das wurde diskutiert, aber schien wohl unvermeidlich zu sein.

Das heisst dann wohl, dass ich osm.org nicht mehr besuchen werde, bis mir jemand sicher bestätigt, dass diese Befürchtung (Firefox) nicht zutrifft. Wenn ich das richtig lese wurde das auch von “denen” nicht bedacht…

kann mir jemand erklären was es damit auf sich hat und wo dann das Problem liegt?

Urgh… soeben haben ich rund 500 neue Einträge in meiner History bekommen. Ne, Leute. Wenn das bis heute Abend nicht raus ist, schreib ich mir dafür (oder dagegen) ein Greasemonkey-Script. Mal eben in #osm-dev schauen.

Wäre super, wenn Du das Greasemonkey-Script dann auch hier veröffentlichen würdest… Da könnte es sicher viele Interessenten dafür geben (mich eingeschlossen, so muss ich nicht auch noch zusätzlich ein Script schreiben und das Rad neu erfinden… ausserdem habe ich mit Greasemonkey noch keine Erfahrungen)

Lies mal z.B. das hier – Ich wollte meine History eben nicht löschen, weil früher™ (und auch heute noch relativ oft) die meisten Seitentitel gut genug gewählt waren, dass man sich keine Lesezeichen zu setzen braucht, wenn man in der History suchen kann.

So ein Greasemonkey-Script wäre als Übergangslösung auch in Ordnung – trotzdem würde ich die Nutzung von osm.org (bzw. zumindest der Hauptkarte) zu vermeiden versuchen, da Workarounds nicht notwendig sein sollten.

Vor etwa 2 Monaten, als osm.ch dieses “Feature” eingeführt hat, dachte ich zuerst: super… Dann sah ich die History… Seither meide ich osm.ch und war froh, dass bei osm.org kein solcher History-Müll produziert wird…
Tja, und nun ist dies auch bei osm.org der Fall.

Ich hoffe, die Admins bei osm.org werden zurückrudern. Solange die History der Leute zugemüllt wird, werde ich aber osm.org nicht mehr weiterempfehlen. Und in der Zwischenzeit werde auch ich osm.org nur noch aufrufen, wenn’s wirklich sein muss - auch wenn’s mit Greasemonkey besser sein sollte, es darf nicht sein, dass man selber was basteln muss, um eine saubere History zu haben…

hab mir in FF gerade den Add-On HistoryBlock installiert. Kann anscheinend nur ganze Websites blocken - also keine Teilbereiche. Und eine Delete-Funktion “Unblock” hab ich auch nicht gefunden.

Aber jetzt ist erstmal Ruhe in der Chronik.

Gruss
walter

p.s. wenn jemand was Besseres findet: Her damit :wink:

Ich habe mal eben im Log geschaut, das wurde schon vor einer Woche eingebaut (und heute Morgen live geschaltet). Ich mache mich dann mal an ein Greasemonkey-Script. Allerdings bin ich mir nicht sicher, ob ich die Event-Listener wieder entfernen kann.

edit: Momentan komme ich nicht weiter. Weder finde ich eine Referenz auf das L.Map-Objekt, noch wüsste ich, wie ich ohne eine Referenz zur Funktion, welche zum Aktualisieren des Links aufgerufen wird, den Event-Listener entfernen kann.