Moin!
Bin neu hier und hoffe ihr könnt mir helfen
Ich arbeite gerade das erste Mal mit Ajax und hab einige Fragen bezüglich Deep-Linking und der Indexierung in Suchmaschinen.
Wie in diesem Artikel von Google beschrieben, habe ich meine Seite erstmal als statische HTML Seite aufgebaut, damit auch User ohne Javascript die Seite benutzen können. Das einzige was schon jetzt mit Ajax geladen wird, ist ein Video, nachdem ein Button geklickt wurde.
Info: Wichtig ist mir im Endprodukt, dass alle Links geteilt werden können und dass auch das Video, dass per Ajax geladen wird, von Google und anderen Suchmaschinen gefunden wird.
Ich möchte nun den Inhalt der Seiten auch mit Ajax laden. Also nach dem Schema: Navigation und Footer bleiben da, alles andere wird nachgeladen. Wie das geht, ist mir in den Grundzügen klar. Wenn auf einen Link geklickt wird, verhindere ich mit Javascript, dass der Browser dem Link folgt, hole mir die URL, auf die der Link zeigt und lade dann aus der Datei auf die der Link zeigt bspw. einen div mit der id content.
----An dieser Stelle dann die erste Frage:
Soweit ich bisher weiß, gibt es zwei Ansätze, um Deep-Linking in Ajax Webseiten zu realiseren. Die Hash Bang Methode und die History API. Wenn ich es richtig verstanden habe, wird bei der History API die URL, die man sich von dem angeklickten Link holt per pushState in die Adresszeile geschrieben. Somit hat man immer die echte URL in der Adresszeile und kann diese teilen etc.
Wenn man nun an dieser Stelle aber die Hash Bang Technik verwenden will, hat man ja keine echten URLs mehr (oder?).
Wenn ich also im ersten Beispiel nach der Ajax Anfrage die echte URL xyz.de/beispiel in der Adresszeile stehen habe könnte es beim zweiten Beispiel etwas in der Form xyz.de/#beispiel sein.
Wie kann man dann sicherstellen, dass wenn jemand die URL xyz.de/#beispiel teilt, ein anderer trotzdem auf der Seite xyz.de/beispiel gelangt? Geht das überhaupt?
Gehen wir jetzt mal davon aus, die Seiten werden per Ajax geladen und alles funktioniert. Dann habe ich auf einigen Seiten einen Button, der ein Video nachlädt (wie oben schon erwähnt).
Dieses Video wird aus einer Datei geladen, die nicht die HTML Struktur der anderen Seite aufweist, sondern nur ein HTML Video Tag enthält. Wenn Javascript deaktiviert ist, kann der User nicht auf dieses Video zugreifen. Folglich kommt die Technik mit dem Link, der sozusagen abgefangen wird, hier nicht in Frage, da ich in keinem Fall will, dass der Nutzer auf die Seite gelangen kann von der das Video geladen wird (auch nicht bei deaktiviertem Javascript).
----Hier also die zweite Frage:
Kann ich mit pushState auch eine "echte fake" URL in die Adresszeile schreiben (xyz.de/beispiel/video)? Wenn diese URL direkt aufgerufen wird, soll dann natürlich sofort auch das Video geladen werden. Falls js deaktiviert ist, soll die Seite einfach ohne Video geladen werden (xyz.de/beispiel). Ist sowas möglich, oder muss dann an dieser Stelle die Hash Bang Technik einspringen? Und kann man beide Techniken einfach miteinander mischen?
Hoffe es ist einigermaßen klar, was ich möchte
Bin neu hier und hoffe ihr könnt mir helfen
Ich arbeite gerade das erste Mal mit Ajax und hab einige Fragen bezüglich Deep-Linking und der Indexierung in Suchmaschinen.
Wie in diesem Artikel von Google beschrieben, habe ich meine Seite erstmal als statische HTML Seite aufgebaut, damit auch User ohne Javascript die Seite benutzen können. Das einzige was schon jetzt mit Ajax geladen wird, ist ein Video, nachdem ein Button geklickt wurde.
Info: Wichtig ist mir im Endprodukt, dass alle Links geteilt werden können und dass auch das Video, dass per Ajax geladen wird, von Google und anderen Suchmaschinen gefunden wird.
Ich möchte nun den Inhalt der Seiten auch mit Ajax laden. Also nach dem Schema: Navigation und Footer bleiben da, alles andere wird nachgeladen. Wie das geht, ist mir in den Grundzügen klar. Wenn auf einen Link geklickt wird, verhindere ich mit Javascript, dass der Browser dem Link folgt, hole mir die URL, auf die der Link zeigt und lade dann aus der Datei auf die der Link zeigt bspw. einen div mit der id content.
----An dieser Stelle dann die erste Frage:
Soweit ich bisher weiß, gibt es zwei Ansätze, um Deep-Linking in Ajax Webseiten zu realiseren. Die Hash Bang Methode und die History API. Wenn ich es richtig verstanden habe, wird bei der History API die URL, die man sich von dem angeklickten Link holt per pushState in die Adresszeile geschrieben. Somit hat man immer die echte URL in der Adresszeile und kann diese teilen etc.
Wenn man nun an dieser Stelle aber die Hash Bang Technik verwenden will, hat man ja keine echten URLs mehr (oder?).
Wenn ich also im ersten Beispiel nach der Ajax Anfrage die echte URL xyz.de/beispiel in der Adresszeile stehen habe könnte es beim zweiten Beispiel etwas in der Form xyz.de/#beispiel sein.
Wie kann man dann sicherstellen, dass wenn jemand die URL xyz.de/#beispiel teilt, ein anderer trotzdem auf der Seite xyz.de/beispiel gelangt? Geht das überhaupt?
Gehen wir jetzt mal davon aus, die Seiten werden per Ajax geladen und alles funktioniert. Dann habe ich auf einigen Seiten einen Button, der ein Video nachlädt (wie oben schon erwähnt).
Dieses Video wird aus einer Datei geladen, die nicht die HTML Struktur der anderen Seite aufweist, sondern nur ein HTML Video Tag enthält. Wenn Javascript deaktiviert ist, kann der User nicht auf dieses Video zugreifen. Folglich kommt die Technik mit dem Link, der sozusagen abgefangen wird, hier nicht in Frage, da ich in keinem Fall will, dass der Nutzer auf die Seite gelangen kann von der das Video geladen wird (auch nicht bei deaktiviertem Javascript).
----Hier also die zweite Frage:
Kann ich mit pushState auch eine "echte fake" URL in die Adresszeile schreiben (xyz.de/beispiel/video)? Wenn diese URL direkt aufgerufen wird, soll dann natürlich sofort auch das Video geladen werden. Falls js deaktiviert ist, soll die Seite einfach ohne Video geladen werden (xyz.de/beispiel). Ist sowas möglich, oder muss dann an dieser Stelle die Hash Bang Technik einspringen? Und kann man beide Techniken einfach miteinander mischen?
Hoffe es ist einigermaßen klar, was ich möchte