Как сделать статичную многостраничную версию сайта-одностраничника, работающего на Javascript?

Здравствуйте!
Есть сайт. В нём многомерный массив со всеми необходимыми данными: коллекции, в них модели. Всё это красиво перелистывается средствами js. Возникла потребность в индексации поисковиками. Яндекс на этот счёт советует только формат ссылок для дальнейшего создания страницы на сервере.
Переделать код js в php, чтобы пользователь получал готовую страницу с запрашиваемой моделью можно, но долго и скучно. Да и в дальнейшем в два раза больше кода писать.
Как автоматизировать процесс? Есть ли какой-нибудь интерпретатор js или плагин для браузера, чтобы он по очереди открыл все "страницы", выполняя код js, попутно сохраняя получившийся результат в html?
  • Вопрос задан
  • 3991 просмотр
Пригласить эксперта
Ответы на вопрос 5
Roosso
@Roosso
Нетипичный программист
hash в адресной строке используйте для навигации.
Яндекс и Google прекрасно различают хеши в адресной строке и индексируют содержимой в зависимости от смены хеша.

location.hash (в гугле много чего есть)

Пример использования в php... Думаю сможете адаптировать к своим нуждам.

Пример взят из stackoverflow. Выглядит вроде рабочим, но не ручаюсь.
file.html
<script type="text/javascript">
    $(document).ready(function() {
        $(window).bind('hashchange', function() {
            var hash = window.location.hash.substring(1);
            $.get('ajax-hash.php', { tag: hash },
                function(data) { $('#tag').html(data); }
            );
        });
    });
</script>

<div id="tag"></div>
<a href="#one">#one</a> | <a href="#two">#two</a> | <a href="#lolwut">#lolwut</a>


ajax-hash.php
<?php
    $hash = isset($_GET['tag']) ? $_GET['tag'] : 'none';
    echo $_SERVER['HTTP_REFERER'] . '#' . $hash;
?>

немного ссылок
link1
link2

link3 (не уверен, что к вашему случаю подойдет)
Ответ написан
Комментировать
miraage
@miraage
Старый прогер
Ответ написан
Комментировать
madmages
@madmages
Человек прямоходящий
все ссылки сделать /a href .... onclick="return false;"/ это будет говорить браузерам не открывать эту ссылку(но роботы поисковиков будут нормально открывать) и уже на javascript обрабатывать нажатия на эти ссылки так как надо типа onclick="func(arg);return false;" . ну а чтоб было совсем гуд то на лету заменять адресную строку pushstate()
Ответ написан
TTA
@TTA
Мутировавший технарь :)
на хабре поищите статью по "pjax". Сам ее использую в одностраничнике - оч удобно
Ответ написан
Комментировать
pomeo
@pomeo
Статичный генератор сайта не проще?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект