Как использовать Backbone.js для многостраничного веб-приложения?

Я всегда использовал маршруты Backbone (#!/blah)

Но я понимаю, что для индексации Google вам необходимо предоставить версию сайта без JavaScript.

Я не люблю писать код дважды. Итак, я бы предпочел создать многостраничное приложение, а не одностраничное веб-приложение.

Backbone.js предоставляет мне «структуру», поэтому мой javascript не превращается в кашу из сфагетти. Но я совершенно не понимаю, как создавать многостраничные приложения с помощью Backbone.

Включаете ли вы файл main.js в каждый рендеринг страницы? Что с маршрутами? Как ты с этим справляешься? Как вы справляетесь с модульностью и т. д.?

Я бы хотел, чтобы было руководство по созданию многостраничных приложений javascript с использованием Backbone.


person TIMEX    schedule 05.02.2013    source источник
comment
Предпосылка ошибочна: Google индексирует динамически генерируемые сайты. searchengineland.com/   -  person Domenic    schedule 06.02.2013
comment
Хорошо, но в любом случае я все еще хочу многостраничный   -  person TIMEX    schedule 06.02.2013


Ответы (2)


Есть много соображений, чтобы сделать что-то подобное, но вот два ключа: один:

Обслуживание страницы

Вы, вероятно, хотите, чтобы ваш веб-сервер перенаправлял все на одну и ту же статическую страницу (при условии, что это статические ресурсы). Это означает, что все в http://yourdomain.com/* будет служить /var/www/yourdomain.com/index.html. После загрузки статической страницы JS на этой странице решит, что делать с учетом URL-адреса.

Состояние отправки

Для выполнения маршрутизации вы по-прежнему можете использовать магистральную маршрутизацию, но не используйте хэш-банги (URL-адреса в стиле #!/blah). См., например, http://backbonejs.org/#History. Это позволит вам переходить к реальным URL-адресам без необходимости обновления страницы. Если браузер не поддерживает pushState, все будет работать, но страница будет перезагружена.

person Jamie Wong    schedule 05.02.2013
comment
Но если я сделаю это таким образом... проиндексирует ли Google мой сайт? - person TIMEX; 06.02.2013

Ответ @Jamie Wong поможет вам в этом. Используя pushState вместо URL-адреса на основе хэша, Google должен рассматривать каждый маршрут как отдельную страницу. Однако, поскольку я предполагаю, что контент для каждого маршрута генерируется динамически, мне неясно, захватит ли Google весь контент. Google определенно имеет возможность доступа к динамическому контенту, как упоминалось выше @Domenic, но есть вопросы:

1) Сколько они могут получить доступ?

2) Пытаются ли они получить доступ как можно больше со ВСЕХ сайтов или, возможно, только с сайтов с большими данными, таких как Facebook?

Позже вы можете попробовать предоставить данные по умолчанию для каждого представления и слоев в динамическом, основанном на поведении пользователя материале. Backbone называет это начальной загрузкой. http://backbonejs.org/#FAQ-bootstrap

person simplynutty    schedule 25.04.2013