1. Поисковики выполняют JavaScript, но, насколько я понимаю, главная их проблема в этом случае — определение события окончания инициализации сайта.
2. Для борьбы с этим и была придумана конструкция #!. Однако она не включает спец-режим рендеринга, а просто перенаправляет запрос на сервер в надежде получить уже скомпилированный исходник страницы по следующему правилу: localhost/#!/test-page --> localhost/?_escaped_fragment_=/test-page
3. В добавок к этому, с увеличением поддержки HTML5 History API, люди переходят с #! на нормальную систему маршрутизации, что еще сильнее затрудняет задачу рендеринга страницы. Однако можно включить режим _escaped_fragment_ используя следующую конструкцию в шаблоне сайта:
Именно по этому во всех promise библиотеках есть враппер функции, который проверяет вернула ли она promise или результат.
Пример:
a = ->
123
b = ->
dfd = new $.Deferred()
dfd.resolve 123
dfd.promise()
# работа с синхронной функцией
$.when(a).then ->
# аналогична работе с promise
$.when(b).then ->
Статья красивая, но если ее цель ввести не опытного читателя в заявленную тему, то она не достигнута.
После прочтения статьи я все равно ничего не понял про функторы и монады.
2. Для борьбы с этим и была придумана конструкция #!. Однако она не включает спец-режим рендеринга, а просто перенаправляет запрос на сервер в надежде получить уже скомпилированный исходник страницы по следующему правилу:
localhost/#!/test-page --> localhost/?_escaped_fragment_=/test-page
3. В добавок к этому, с увеличением поддержки HTML5 History API, люди переходят с #! на нормальную систему маршрутизации, что еще сильнее затрудняет задачу рендеринга страницы. Однако можно включить режим _escaped_fragment_ используя следующую конструкцию в шаблоне сайта:
Все испортили жесткие дни в июле с >90 коммитами :)
Пример:
Жаль я совсем никак не связан с графиками :-)
После прочтения статьи я все равно ничего не понял про функторы и монады.
Неужели его кто-то использует?
А за статью по AngularJS спасибо.
Это больше остального не хватало