Die beste Methode, um wil_paginate mit Ajax zu arbeiten

8

Wenn Sie "will_paginate" und "ajax" googlen, ist das beste Ergebnis dieses Blog post : Aber der ursprüngliche Autor von will_paginate sagt zu diese Methode nicht zu verwenden (schlecht für SEO / Spinnen) ...

Aber ich kann nicht die Original-Autoren-Methode funktionieren (sein Javascript tötet alle meine Links). Ein anderer Gentleman schlägt eine ähnliche Methode vor wie das Konzept von mislav (dem ursprünglichen Willen_paginate Autor) . Aber ich kann nicht das bekommen, um entweder zu arbeiten.

so .... was ist der beste Weg, mit AJAX zu paginieren und SEO freundlich zu bleiben? (für SCHIENEN & gt; 2.1)

    
Etienne 19.02.2009, 12:41
quelle

5 Antworten

15

Tomhs Antwort ist richtig. Nur für Shiggles habe ich eine schnelle Implementierung entwickelt. Hier ist ein Screencast , der die Verwendung von Ajax zeigt, wenn Javascript aktiviert ist (Ihre Nutzer) und immer noch hübsche URLs haben, wenn Javascript deaktiviert ist (Google) . Und hier sind ein paar Code-Schnipsel, damit Sie darauf rollen können.

config/routes.rb:

%Vor%

app/controllers/items_controller.rb:

%Vor%

app/views/items/index.html.erb:

%Vor%

app/views/items/_items.html.erb:

%Vor%

Layout:

%Vor%

public/javascripts/application.js:

%Vor%

Mein Beispiel verwendet jQuery (mit jRails ), aber es ist auch einfach mit Prototype zu tun.

    
Ian Terrell 20.02.2009 00:13
quelle
7

Seo freundliche und unaufdringliche Javascript geht Hand in Hand. Was Sie tun können, ist Folgendes.

  • Kodieren Sie die gesamte Website, als ob nur HTML aktiviert ist (inkl. Ihrer Paginierung)
  • Verwenden Sie respond_to und geben Sie nur die Liste der Elemente an, wenn die Anfrage von js
  • kommt
  • Mit Hilfe von onDomReady aus der von Ihnen ausgewählten Bibliothek fangen Sie alle Paginierungslinks ab und fügen ein onclick -Ereignis hinzu, das einen AJAX-Aufruf für diese neue Sicht auslöst und das Ergebnis zurückgibt. Sie fügen dieses Ergebnis in den Container ein, der die Daten enthält, die Sie paginieren. Der onclick gibt dann false zurück.
  • Um Ihren Benutzern eine bessere Benutzererfahrung zu bieten, können Sie der gleichen JavaScript-Methode einige Funktionen wie aktive Links usw. hinzufügen.

Bei dieser Vorgehensweise funktioniert die Paginierung für JS und nicht-js, da die Nicht-js-Benutzer (einschließlich Googlebot) Ihre Paginierung wie gewohnt durchlaufen. Nur wenn der Benutzer JavaScript aktiviert hat, wird der Container mit Daten mit neuen Ergebnissen aktualisiert.

    
TomHastjarjanto 19.02.2009 13:00
quelle
1

Leider glaube ich nicht, dass Sie Ajax so verwenden können, wie Sie es möchten, und trotzdem SEO-freundlich bleiben, was den paginierten Inhalt betrifft. Das Problem ist, dass die Roboter von Google und Freunden, soweit ich weiß, Ihre Inhalte nicht mit XHR-Anfragen durchgehen werden, so dass sie diesen Inhalt einfach nicht sehen.

Wenn jedoch die paginierten Elemente jeweils eigene statische, SEO-freundliche Seiten haben (oder auf Ihrer Website anderweitig statisch verfügbar sind), findet der Inhalt immer noch seinen Weg in die Suchmaschinen. Dies ist die Art, wie Sie wahrscheinlich gehen möchten.

    
fig 19.02.2009 12:59
quelle
0

Es gibt eine Railscasts zu diesem Thema, die mir Ссылка

geholfen haben

Ich fahre rails 3.2, also fügte ich die dort erwähnte pagination.js in den Ordner app / assets / javascripts

ein

pagination.js

%Vor%

Und dann erstellt

home.js.erb

%Vor%

Da ich zwei verschiedene Angebote auf meiner Homepage habe.

Das war alles, was ich tun musste, um will_paginate mit Ajax zu arbeiten. Was SEO betrifft, weiß ich nicht viel darüber, aber die URL http://localhost:3000/customers?_=1366372168315&feed_page=1&tags_page=2 funktioniert immer noch

    
MrWater 19.04.2013 11:57
quelle
0

Es gibt eine gute Möglichkeit, dies leicht zu tun, wenn Sie sich nicht um Spinnen sorgen. Nahm mich 5 Minuten. Check out:

Ссылка

Wenn Sie eine Fehlermeldung über eine fehlende 'Verlaufsdatei' erhalten, installieren Sie:

Ссылка

aber auch bewusst sein:

rails ajax_pagination konnte die Datei 'history' nicht finden

    
Abram 25.04.2013 01:52
quelle

Tags und Links