Все давно знают удобный способ организации навигации в Ajax-приложениях. Способ этот довольно распространен и основан на изменении якоря (части адреса страницы после диеза #).
Этот способ работает во многих браузерах. Но как оказалось, не везде одинаково эффективно. Применяя этот способ в эксплорере, я наткнулся на неожиданный эффект. Ниже результаты небольшого бенчмарка, который я написал специально для этого случая. Я знаю, друзья мои, вы любите всякие бенчмарки. Вот его код, он очень прост для понимания:
А вот результаты:
Opera 10: 15 ms.
FF2: 30 ms.
FF3: 30 ms.
IE6: 323 ms.
IE7: 7825 ms.
IE8: 7240 ms.
Да, безусловно, структура документа очень сложна, весит он аж 240кб только в html. И на этом фоне очень хорошо заметно, что новая версия ИЕ стала работать намного быстрее, обгоняя на 8% своего младшего брата! Ура товарищи! Виват эксплорер! Да здравствует Microsoft!
UPD: Всем спасибо, все дело во включенном Developer Toolbar. Ну так то да, что-бы по якорю пройти в режиме разработчика, дофига времени нужно. Это же столько изменений в системе нужно сделать, когда по якорю переходит разработчик, сходу в голову приходят как максимум 0 таких изменений.
Этот способ работает во многих браузерах. Но как оказалось, не везде одинаково эффективно. Применяя этот способ в эксплорере, я наткнулся на неожиданный эффект. Ниже результаты небольшого бенчмарка, который я написал специально для этого случая. Я знаю, друзья мои, вы любите всякие бенчмарки. Вот его код, он очень прост для понимания:
var start = new Date().getTime();
window.location.hash = url
var stop = new Date().getTime();
alert( stop - start );
А вот результаты:
Opera 10: 15 ms.
FF2: 30 ms.
FF3: 30 ms.
IE6: 323 ms.
IE7: 7825 ms.
IE8: 7240 ms.
Да, безусловно, структура документа очень сложна, весит он аж 240кб только в html. И на этом фоне очень хорошо заметно, что новая версия ИЕ стала работать намного быстрее, обгоняя на 8% своего младшего брата! Ура товарищи! Виват эксплорер! Да здравствует Microsoft!
UPD: Всем спасибо, все дело во включенном Developer Toolbar. Ну так то да, что-бы по якорю пройти в режиме разработчика, дофига времени нужно. Это же столько изменений в системе нужно сделать, когда по якорю переходит разработчик, сходу в голову приходят как максимум 0 таких изменений.