Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Регистрация Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Блоги > As3 изучение и немного As2

Оценить эту запись

Якорь мне .... ))) Или History API

Запись от in4core размещена 06.11.2012 в 13:31

Не секрет , что с появлением html5 появилось человеческое history API, подробнее можно почитать http://diveintohtml5.info/history.html , или на хабре, тоже была статья хорошая http://habrahabr.ru/post/123106/. Так вот, а значит, что теперь можно будет отказаться от якорей и для флешек наших любимых. Запускать internal изменение строки бразуера вида mysite.com/somePage теперь не составит труда. Кстати, почитав про все это, наткнулся на одну темку, где с этим можно было работать еще и до html5 , средствами чистого JS (jquery) , там использовалось что то типа replace("#","/") , точно не скажу, извиняюсь, но функцию не найду сейчас, ну да ладно - это все старье, а мы будем делать по новому .
И так с internal все ясно. А вот как быть с external ? Если пользователь запустит mysite.com/somePage - получим 404 в лучшем случае, - ясное дело, что придется шаманить. Предположения такие : настраиваем сервер так, что страница 404 - будет страницей редиректом на mysite.com тоесть на главную, кроме того, во время редиректа мы будем передавать некий параметр (url который был изначально) , после загрузки флеша ловить этот параметр, парсить как надо, запускать нужный раздел, а затем снова выкидывать call , для того, чтобы url стал таким , как задавал пользователь изначально. Одна проблема, теперь при external на уже загруженной флешке будет опять происходить переход в 404. Как решить этот пункт, пока не придумал, но уверен решения есть, что скажите, кто нибудь пробовал уже?
Всего комментариев 21

Комментарии

Старый 06.11.2012 14:05 Hauts вне форума
Hauts
 
Аватар для Hauts
Цитата:
будем передавать некий параметр (url который был изначально) , после загрузки флеша ловить этот параметр, парсить как надо, запускать нужный раздел, а затем снова выкидывать call , для того, чтобы url стал таким , как задавал пользователь изначально.
mod_rewrite в помощь. Браузерный урл будет любой, а вот возвращаемый хтмл — индексовый.

http://joomfans.com/blogs/chto-takoe...spolzovat.html
Старый 06.11.2012 14:08 Hauts вне форума
Hauts
 
Аватар для Hauts
А насчет описаной проблемы — да, вероятно это самый простой способ. По крайней мере, очевидный.
Старый 06.11.2012 14:54 in4core вне форума
in4core
 
Аватар для in4core
Цитата:
А насчет описаной проблемы — да, вероятно это самый простой способ. По крайней мере, очевидный.
Так вот проблема то все равно есть, находясь на самом флеше, изменив exetrnal урл, у нас будет перезагрузка, если не якорно. Вот с этим что делать?
Старый 06.11.2012 15:26 Hauts вне форума
Hauts
 
Аватар для Hauts
Запускается index.php при обращении к странице site.com/about, потом отправляются хэдеры для перехода к site.com. Данные о том, что нужно показать страницу "about" можно в сессию, например, запихнуть.

Вообще это с пхпэшниками нужно обсуждать
Старый 06.11.2012 16:14 in4core вне форума
in4core
 
Аватар для in4core
Цитата:
Вообще это с пхпэшниками нужно обсуждать
Ну тут я и сам справляюсь.
Цитата:
Запускается index.php
Если она запускается значит релоадится, или я что то не верно понимаю?
Старый 06.11.2012 19:41 Psycho Tiger вне форума
Psycho Tiger
 
Аватар для Psycho Tiger
Не понимаю проблему.
Словили на внешней ссылке, записали в сессию, отрендерили же index (или сделали редирект, не важно).
Если всё-таки редирект, то меняем адрес внутренне, без редиректа.
Старый 06.11.2012 21:41 in4core вне форума
in4core
 
Аватар для in4core
может оно и так, надо пробовать. я на вскиду писал
Старый 06.11.2012 22:35 dimarik вне форума
dimarik
 
Аватар для dimarik
Как я понял.
- Набираем в браузере http://example.com/about;
- Такого url не существует. Нас редиректят на общий index.php вида http://example.com/index.php?about;
- Скрипт генерирует страницу, во flashvars которой ставит url=http://example.com/about;
- Флешка должна поставить в строке адреса браузера http://example.com/about без перезагрузки.
Старый 07.11.2012 01:11 in4core вне форума
in4core
 
Аватар для in4core
Цитата:
Как я понял.
- Набираем в браузере http://example.com/about;
- Такого url не существует. Нас редиректят на общий index.php вида http://example.com/index.php?about;
- Скрипт генерирует страницу, во flashvars которой ставит url=http://example.com/about;
- Флешка должна поставить в строке адреса браузера http://example.com/about без перезагрузки.
Именно так и нужно. Но это все понятно и просто. Вопрос другой стоит - Тигра и хаунтс говорят это без проблем , но пока я не вижу, что они говорят правду ибо - >

Цитата:
Если всё-таки редирект, то меняем адрес внутренне, без редиректа.
Каким это образом? Если ты находишься на www.example.com ( флешка загрузилась) , теперь я дописываю в строке бразуера /about и жму интер - как сделать, чтобы в этом случае не произошло обновление страницы? поидее никак. ибо я выходов не вижу хоть убей
Старый 07.11.2012 06:51 Hauts вне форума
Hauts
 
Аватар для Hauts
Верно, когда пользователь введет /about — страница релодится, с этим ничего не поделаешь.
Старый 07.11.2012 12:32 in4core вне форума
in4core
 
Аватар для in4core
Цитата:
Верно, когда пользователь введет /about — страница релодится, с этим ничего не поделаешь.
Так вот Тигра я так понял утверждает иначе, что обход есть. Просто это реально бредовая сетуация будет если УЖЕ загруженная флешка будет заново перегружаться и проводить какую то анимацию.
Старый 07.11.2012 13:17 iNils вне форума
iNils
 
Аватар для iNils
Цитата:
Просто это реально бредовая сетуация будет если УЖЕ загруженная флешка будет заново перегружаться и проводить какую то анимацию.
А что в этом бредового? Если на ф5 нажать, то результат будет тот же.
Старый 07.11.2012 14:24 in4core вне форума
in4core
 
Аватар для in4core
Цитата:
А что в этом бредового? Если на ф5 нажать, то результат будет тот же.
Да да да, это все ясно. Просто в этом случае смысл флешки в пользу хтмл теряется. Ибо на хтмл ( только при ф5) будет релоад, поэтому видимо якорная система пока еще держится на плаву
Старый 07.11.2012 14:37 iNils вне форума
iNils
 
Аватар для iNils
Ничего не теряется. Налицо не понимание, как это все работает.

Есть 2 части:
1. Загрузка страницы (разметка, скрипты, стили) + контент.
2. Загрузка только контента (XMLHttpRequest) и смена пути в адресной строке.

И так, мы зашли на сайт выполнился пункт 1, нажали на ссылку - пункт 2, на другую - 2. А если ручками добавили about в адресной строке или нажали ф5, то опять будет 1.

А теперь вопрос, где принцип работы html отличается от flash? Если загрузили флеш и нажали там ссылку, которая подтянула контент, а потом через history api изменила урл, то якорей не будет и не будет перезагрузки.
Старый 07.11.2012 16:06 in4core вне форума
in4core
 
Аватар для in4core
Цитата:
добавили about в адресной строке или нажали ф5,
В хтмл5 перезагрузки при добавлении about не будет. Прочитайте или хотябы посмотрите статьи которые приведены в теме - тогда будет понятно о чем речь
Старый 07.11.2012 16:19 iNils вне форума
iNils
 
Аватар для iNils
Я не хочу ничего читать, я хочу ссылку на сайт, где добавив в адресной строке about или что-то другое и нажав Enter, не будет перегрузки страницы.
Старый 07.11.2012 17:52 alatar вне форума
alatar
 
Аватар для alatar
in4core, "прочитайте или хотябы посмотрите статьи которые приведены в теме", перезагрузка будет. Возьмите пример из хабравской статьи и повводите разные адреса с включенным сниффером.
Старый 07.11.2012 19:20 Hauts вне форума
Hauts
 
Аватар для Hauts
Тот же "Вконтакте" использует хистори апи. Введем в адресе вместо "http://vk.com/feed", например "http://vk.com/audio" — страница релодится.
Старый 07.11.2012 20:41 in4core вне форума
in4core
 
Аватар для in4core
Ну значит я туплю походу, тогда и взятки гладки в принципе. Всем спасибо. Думаю кто не в теме, для размышлений почва есть
Старый 08.11.2012 18:11 elder_Nosferatu вне форума
elder_Nosferatu
 
Аватар для elder_Nosferatu
Вариант не самый изящный, да и с отключеным JS не сработает, но что если убрать адресную строку из окна браузера и симитировать ее во флеш-сайте? Прогулка по внутренним адресам ничего не релоадит. А если пользователь вводит внешний адрес, то скудо-бедно проверяем его на валидность и еслы все ок, то загружаем указаный адрес, в противном случае - перенаправляем в Гугло-поиск
Старый 08.11.2012 18:37 Hauts вне форума
Hauts
 
Аватар для Hauts
Цитата:
да и с отключеным JS не сработает
— вот, по-моему, забота о пользователях должна быть в разумных пределах. И отключенный js в эти пределы не входит. Отключил — наслаждайся неработающими сайтами

Цитата:
но что если убрать адресную строку из окна браузера и симитировать ее во флеш-сайте
— Убирать что-то в браузере весьма сомнительная практика, которая оправдывает себя в очень редких случаях. Да и сомневаюсь я, что можно убирать строку адреса в текущем окне (в открываемом можно, да).

Цитата:
в противном случае - перенаправляем в Гугло-поиск
— Зачем же сразу на другой сайт перебрасывать? Показываем карту сайта, например, этого будет достаточно, я думаю.
 

 


Часовой пояс GMT +4, время: 09:52.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.