Jump to content
  • 0

Изменение uri в адресной строке браузера без перезагрузки страницы


voodoo
 Share

Question

например, как в контакте, на странице

http://vkontakte.ru/videosХХХХХХХХ

при выборе какого нибудь видео, uri изменяется на

http://vkontakte.ru/videoХХХХХХХХ_ХХХХХХХХХ

при нажатие на кнопку "свернуть" или "закрыть", url изменяется обратно.

На сколько я знаю изменение url без перезагрузки страниц можно только с помощью якорей, но как тогда он изменяется вконтакте?

Link to comment
Share on other sites

24 answers to this question

Recommended Posts

  • 0
На сколько я знаю изменение url без перезагрузки страниц можно только с помощью якорей, но как тогда он изменяется вконтакте?

Сами же и ответили на свой вопрос

<a href="#1">один</a> <a href="#2">два</a>

Link to comment
Share on other sites

  • 0
<a href="#1">один</a> <a href="#2">два</a>

после этого, url бы выглядел так:

http://vkontakte.ru/videoХХХХХХХХ#ХХХХХХХХХ

но он выглядит так:

http://vkontakte.ru/videoХХХХХХХХ_ХХХХХХХХХ

как реализовать изменение url без якорей и без перезагрузки страницы?

Link to comment
Share on other sites

  • 0

где ты увидел #?

<td class="video_thumb"><a href="/videoХХХХХХХХ_ХХХХХХХХХ" onclick="return Video.show(event, 'ХХХХХХХХ_ХХХХХХХХХ');"><img src="http://cs12327.vkontakte.ru/u72912054/video/s_d2c4ef97.jpg" /></a></td> 
<td class="video_info">
<div class="video_info_cont">
<a href="/videoХХХХХХХХ_ХХХХХХХХХ" onclick="return Video.show(event, 'ХХХХХХХХ_ХХХХХХХХХ');" class="video_name" />ХХХХХХХХ ХХХХХХХХХ</a>
<div class="video_duration">2:51</div>
<div class="video_desc"></div>

</div>
</td>

нет там якорей, нет в адресной строке браузера символа "#".

Link to comment
Share on other sites

  • 0

1. Вероятно, интернеты ваши на столько быстры, что вы не замечаете перезагрузки страницы.

2. return Video.show(event, 'ХХХХХХХХ_ХХХХХХХХХ') стопудово отдаст адрес с «#».

3. Я сам проверял как вконтакт формирует адрес видео и не верю, что без перезагрузки страницы он волшебным образом подменяет урл. Сделайте видео — докажите мне обратное. Я, проработав 3 года веб-программистом, и насмотревшись всякого, вам не верю, так как считаю, что это невозможно. Переубедите меня :(

Link to comment
Share on other sites

  • 0

Выполните какое либо действие на странице, след от которого после перезагрузки страницы должен исчезнуть. Например, выделите текст на странице. После чего начните просмотр видео, поверх всего появиться новый слой с плеером, а на фоне текст останется выделенным. Это доказывает, что страница не перезагружалась. Но uri в адресной строке браузера поменяется.

return Video.show(event, 'ХХХХХХХХ_ХХХХХХХХХ') стопудово отдаст адрес с «#».

Даже если и так, то что? в адресной строке браузера всё равно будет:

http://vkontakte.ru/videoХХХХХХХХ_ХХХХХХХХХ

лог консоли Firebug

[0.079] indexer: start
[0.124] indexer: index created Object { &={...}, 4={...}, more...}
POST http://vkontakte.ru/al_video.php
POST http://vkontakte.ru/al_video.php
...
[5.798] resize [720, 410]
[6.223] resize [720, 410]
[6.227] onVideoPlayStarted [729120ХХ, 1589527ХХ, "ad69e8c6fedaавпваf6b8b5002f448a0b"]

Небыло перезагрузки страницы, подгрузилось видео через аякс.

Edited by voodoo
Link to comment
Share on other sites

  • 0

В ослике:

http://vkontakte.ru/videos3377191#/video3377191_148429387

В опере:

http://vkontakte.ru/videos3377191#/video3377191_148429387

В хроме:

http://vkontakte.ru/video3377191_148429387

В сафари

http://vkontakte.ru/video3377191_148429387

В лисичке:

http://vkontakte.ru/videos3377191#/video3377191_148429387

Link to comment
Share on other sites

  • 0

Сафари и ИЕ мне не доступны, но в хроме всё так же, как и в остальных браузерах — всё через шарп. Возможно, в винде всё иначе — это я завтра проверю, лень садиться за компьютер, а ноут виртуалку не потянет.

Link to comment
Share on other sites

  • 0

Пришлось встать с кровати и включить компьютер. Да, и правда под виндой хром меняет урл. Правда, нет уверенности, что он не перегружает всю страницу. В интернетах нет ничего о том, что говорило бы об обратном.

Link to comment
Share on other sites

  • 0

Да сниффер мне показывает standart HTTP request и так, и сяк, а с пьяных глаз в подробностях кода ответов ничего понять не могу. Надо, наверное, другой сниффер поставить, но я уже обратно лёг в кровать и больше сегодня не вылезу. Хоть и жутко интересно.

Link to comment
Share on other sites

  • 0

мне вот тоже жутко интересно.

Тоже имеющийся опыт подсказывает, что это невозможно.

Но как так получилось — понять не могу по причине того, что в контакт без регистрации не пускают.

Link to comment
Share on other sites

  • 0

Только что в четвёртом огнелисе проверил — работает, блин. Это дурацкий шаг в сторону задницы со стороны разработчиков. Не дай Бог это станет стандартом. Приношу ТС извинения за недоверие и ложную информацию. А ещё зарекаюсь вообще работать с фронтом — только тёплый ламповый серверный скриптовый язык — он, по крайней мере, более стабилен и предсказуем.

Link to comment
Share on other sites

  • 0

Злобный фишинг вряд ли. Фишка работает строго в пределах домена. К сайтам оно, конечно, притянуто за уши, но в веб-приложениях вполне может найти разумное применение, имхо...

Link to comment
Share on other sites

  • 0
фишинг?

Хост(домен) невозможно подменить таким способом, поэтому ни чего критического в этом Я не вижу.

А зато у этого нововведения есть большой плюс.

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

- смотри прикол artlebedev.ru/everything/brain/2011/03/03/

- вау, круто!

а не такое:

- зайди на artlebedev.ru/kovodstvo/sections/3/ клацни "идиотека", потом три щелчка вниз, потом ещё влево и один вверх и только после этих мучений ты увидишь прикол!

- да ну нах, мне лень...

Надеюсь, что и все браузеры вскоре научаться менять url.

P.S. спасибо Дурову за просветление))

Edited by voodoo
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy