Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » HTML5 History API

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
День добрый, решил испытать функционал HTML5 в частности History API. Так вот набросал небольшой говнокод (судя по тому как он работает).

Код:
 
<script>
$( document ).ready(function() {
    function parseurl() {
        var parse_url = window.location.pathname;
        if (parse_url != '/'){
            viewcontent(parse_url);
        } else {
            viewcontent('content/startpage.html');
        }
    };
    function viewcontent(content){
        $("#content").empty();
        $("#content").hide();
        $('#ajaxloader').fadeIn(300).delay(2300).fadeOut(100);
        $("#content").load(content);
        $("#content").delay(3000).fadeIn(700);
        history.pushState(null,null,content)
    };
    window.addEventListener("popstate", function(e) {parseurl();}, false);
    $('a').click(function() {viewcontent($(this).attr('href'));return false;});
});
</script>
 

А работает следующим образом, жмем ссылку где href=content/test1.html, так нажали все норм. Нажали в браузере назад, тоже норм. Но ссылки были  href=content/test2.html, а стали href=content/content/test2.html.
Причем все ссылки, даже в тегая img к пути в src дописывается "content".

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 19:13 17-08-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011
разницу между абсолютными и относительными путями знаете?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:19 17-08-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery да... мммм... Странно, а я думал html5 умеет догадываться .  
Что же получается, все ссылки должны имеет абсолютные пути. А при такой реализации, поисковые боты будут ссылки видеть?

Код:
 
<script>
$( document ).ready(function() {
    function parseurl() {
        var parse_url = window.location.search;
        if (parse_url != ''){
            viewcontent(parse_url);
        } else {
            viewcontent('index.php?uri=content/startpage.html');
        }
    };
    function viewcontent(content){
        $.ajax({
            type: "POST",
            url: "content/content.php",
            data: {    uri: content, },
            cache: false,
            success: function(data){
                $("#content").empty();
                $("#content").hide();
                $('#ajaxloader').fadeIn(300).delay(2300).fadeOut(100);
                $("#content").append(data);
                $("#content").delay(3000).fadeIn(700);
                history.pushState(null,null,content);
            }
        });
    };
    window.addEventListener("popstate", function(e) {parseurl();}, false);
    $('a').click(function() {viewcontent($(this).attr('href'));return false;});
});
 
</script>
 

ссылка href="index.php?uri=content/economyclass.html"
 
P.S. А в .htaccess сделать RewriteRule ^economyclass.html index.php?uri=content/economyclass.html [NC,L,NE]

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 22:34 17-08-2013 | Исправлено: koreets2011, 22:37 17-08-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011

Цитата:
 А при такой реализации, поисковые боты будут ссылки видеть?  

поисковые боты js не запускают.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:58 17-08-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А как же тогда вот это ?

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 23:10 17-08-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011
ну может конкретно данный поисковик, если выполнены его условия.
в общем виде - нет.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:21 17-08-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У Яндекса правило то же самое. То есть, можно смело использовать hash. А не выдумывать мне говногоды.
Что то я вообще от темы ушел, короче Cheery предлагаете заменить относительные пути на абсолютные, будем пробовать. Уж сильно хочется познать прелести html 5.
 
Добавлено:
Cheery все равно, ко всем ссылкам в начало добавляется content. Вот код файла обрабатывающего ajax запросы.

Код:
 
<?php
header('Content-Type: text/html; charset=utf-8');
$ajax = true;
if(!empty($_POST['uri'])){
    $content = '/storage/home/убрано цензурой/test.taxi-69.ru/html/'.$_POST['uri'];
    include($content);
}
 

В итоге запрашиваемая страница показывается там где надо, и как надо.

Код:
 
history.pushState
 
 
успешно устанавливает действительный адрес для запрошенной страницы, но при просмотре исходного кода страницы, хочется застрелиться. Во первых виден только код запрошенной страницы и не в той кодировке( не суть, поправимо).
Однако Firebug видит все отлично, посмотрел validator.w3.org песня вообще другая, не видит код подгруженного контента.
Может быть подгружать не html файл, а php и инклудить header и footer. Но как мне подсказывает что то, увижу я в dive дубль заинклудинных файлов.
 
Добавлено:
P.S. про абсолютный путь догнал .  А как же быть с JS, браузер его не видит, цеплять его на каждую запрашиваемую страницу? (бред)
 
Добавлено:
Все Happy End, разобрался как этот HTML5 History API юзать, очень интересная штука. Если кому интересно выложу код. Только вот не совсем понято, следует ли делать копии html страниц для ботов? Думаю стоит, когда уже ботов научать ajax понимать не по меткам.  
Может в html 6 web_crawler API добавят

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 23:43 17-08-2013
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » HTML5 History API


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru