Backbone.js pushstate, googlebot, серверная часть - PullRequest
2 голосов
/ 28 января 2012

У меня проблема с магистральным маршрутизатором и pushState.

Вот мой роутер: https://gist.github.com/1672111

Ну, у меня есть пара представлений, моделей, коллекций, маршрутизаторов с pushState, это работает как шарм.

Если пользователь перейдет на /item (или даже в root (/)), Nodejs отобразит всю страницу (мы не знаем, включен ли у пользователя javascript или googlebot зачищает страницу).

Но если у пользователя включен javascript, то будет запущен маршрут Backbone, и страница будет перерисована после вызова ajax. Я знаю, что это (вызов ajax) необходимо, но что мне делать?

  1. В связи с этим я должен позвонить $( this.el ).hide(), чтобы скрыть перерисовку?

  2. На стороне сервера я не должен отображать основной контент только макет? В этом случае я должен дать другой контент для googlebot и просто макет для обычных пользователей? (ИМХО не лучшее решение)

Наконец, мне нужно привязать метод рендеринга к событию изменения модели, потому что у ie8 пользователей нет pushstate, поэтому они используют навигацию на основе хеша, которая не отправляется на серверную часть.

спасибо

К вашему сведению: это кросс-пост из списка рассылки backbonejs: https://groups.google.com/group/backbonejs/browse_thread/thread/17c708f4429dcd73

...