Fly AJAX — пишите меньше, имейте больше. Нестандартный AJAX и индексация поисковиками.


    Обсуждение предыдущей статьи было бурным. Самые ярые любители jQuery, Mootools кричали зачем мол нужен другой велосипед.
    В данной статье мы рассмотрим использование техники Fly AJAX. Это одна из нескольких функциональных возможностей, которые не реализованы в ранее указанных больших (и мною уважаемых) фреймворках. Также, в данной статье, мы рассмотрим принципы правильного проектирования и построения сайтов для хорошей индексации с применением AJAX технологии.

    «Улётный» AJAX


    Технология Fly AJAX — это преобразование «на лету» обычных ссылок в AJAX ссылки. Используя данную технологию, обычную загрузку контента по ссылкам на веб-страницы мы можем легко преобразовать в асинхронную загрузку.

    Рассмотрим на примере. Допустим у нас имеется меню сайта

    <ul>
      <li><a href="/content/info">Info</a></li>
      <li><a href="/content/download">Download</a></li>
      <li><a href="/content/contact">Contact</a></li>
    </ul>
    <div id="content-body">Welcome</div>


    При обычном подходе, кликая на ссылки меню, мы переходим от одной страницы к другой с полной перезагрузкой.
    Применим к данному меню технику Fly AJAX. Одним из вариантов автоматического преобразования обычных ссылок в AJAX ссылки, является использование SRAX.Filter.
    SRAX.Filter — как раз и предназначен для «авто-заворачивания», «авто-преобразования» обычных ссылок в AJAX ссылки. Ссылки по заданным критериям отфильтровываются и преобразуются в асинхронные запросы. Рассмотрим пример относительно нашего меню

    SRAX.Filter.add({url:'/content/', id:'content-body'})

    Все! Теперь кликая на ссылки меню мы переходим от одной страницы к другой асинхронно подгружая контент без полной перезагрузки страниц.

    id — определяет ИД элемента, в который необходимо подгрузить контент.
    url — определяет часть адреса ссылки, условие фильтрации, по которому проводить отбор ссылок для преобразования.

    Список параметров работы SRAX.Filter

    • id — id блока
    • url — ссылка или массив ссылок
    • urlType — 'contain' (по умолчанию) или 'start' или 'end' — соответсвенно содержит, начинается или заканчивается
    • query — строка или массив строк запроса
    • queryType — 'contain' (по умолчанию) или 'start' или 'end' — соответсвенно содержит, начинается или заканчивается
    • join (joinLogic) — логика обьединения url и query — 'or' (по умолчанию) или 'and'
    • changer (urlChanger) — функция изменения обволакиваемой ссылки urlChanger: function(url, owner){return url.replace('index.php', 'mypage.php')}
    • target — true заворачивать ссылки с атрибутом target (_self, _parent, _top, _blank) или false — не заворачивать (по умолчанию)
    • type — если = 'skip', тогда отмена «AJAX заворачивания»; если = 'data', тогда для запроса используется dax, иначе используется hax
    • handler — функция обработки клика, если не указана, тогда используется функция в соответсвии с type
    • + все опции из hax (все опции, которые описывались в предыдущей статье для функции hax)

    Важно: адреса следующего типа /content/download?id=1 — для фильтра делятся на две части url=/content/download и query=id=1. Фильтрацию можно проводить по параметрам запроса

    SRAX.Filter.add({query:'id=', id:'main-content'})

    Также, можно проводить комбинацию условий фильтрации url и query, условие комбинации определяется параметром join.

    На нашем сайте имеются примеры разных вариантов фильтрации.

    Рекомендую самостоятельно ознакомится с примерами которые используют параметры handler и changer.

    Использование ax: атрибутов тегов <a>,<form>,<area>


    Вторым способом реализации Fly AJAX является использование ax атрибутов ссылок <a>. Данный подход очень понравился многим разработчикам, которые использую Fullajax в своих проектах. Рассмотрим пример на том же меню
    <ul>
      <li><a ax:id="content-body" href="/content/info">Info</a></li>
      <li><a ax:id="content-body" href="/content/download">Download</a></li>
      <li><a ax:id="content-body" href="/content/contact">Contact</a></li>
    </ul>
    <div id="content-body">Welcome</div>

    Все! Опять же, кликая на ссылки меню мы переходим от одной страницы к другой асинхронно подгружая контент без полной перезагрузки страниц.

    Подход не стандартный, но оригинальный, так как практически не требует написания ни единой строчки javascript кода. В качестве атрибутов вы можете использовать точно такие же параметры как и для SRAX.Filter, только с префиксом ax: (название префикса по желанию можно настроить).

    Одним из сложных моментов при реализации Fly AJAX являлось сохранение функциональности определенных для ссылок событий, т.е. если вы определили событие onclick

    <a ax:id='content' href="/mypage" onclick="alert(1)">

    произойдет сначала alert, а потом загрузка. Если выполнение onclick вернет false — AJAX запрос не состоится.

    Авто-преобразованию подвергаются также теги <form> и <area>.

    При желании можно организовать более оптимальную выдачу контента для AJAX запросов. Т.е. отдавать только то, что необходимо заменить на стороне клиента. Определить обычный запрос или AJAX запрос можно проверяя хеадер запроса X-Requested-With=XMLHttpRequest. При наличии такового отдавать меньше. Если нет желания оптимизировать выдачу или нет такой возможности — можно использовать тогда метки блоков контента. Детальнее о данном подходе отдачи контента, который условно называется model2 («один-ко-многим» — один запрос на много блоков), можно ознакомится в отдельном топике на сайте нашего форума. Данный подход детальнее будет рассмотрен в следующих статьях.

    AJAX и индексация поисковиками


    Исходя из ранее рассмотренного можно легко понять как необходимо строить свои сайты для того чтобы и контент индексировался поисковиками и AJAX работал. Ведь если мы посмотрим на структуру нашего меню, которое приведено в примерах — оно чудесно поддается индексации. А если еще хорошо подумать, то в итоге можно сделать даже большую степень индексации чем при обычном построении. При правильном использовании AJAX позволяет повысить индексацию сайтов!!! Ваууу! И полетели шапки…

    Таким образом, техника Fly AJAX позволяет обеспечить нормальную индексацию сайтов поисковиками и при этом использовать AJAX на полую катушку.
    В добавок ко всему вы программируете еще «меньше меньшего», а получаете больше.


    В следующей статье планируется рассмотреть
    • SRAX.directLink — поддержка прямых AJAX ссылок
    • SRAX.linkEqual — преобразование AJAX ссылок в человеко-понятный вид
    Всех благ!!! Спишемся .
    Поделиться публикацией
    Похожие публикации
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 207
    • 0
      Но как обеспечить в меню, чтобы страница не ссылалася сама на себя?
      • –1
        ээ, не понял, а поподробнее расписать то что имеете виду?
        • +4
          Плюньте. Об этом мифе забыл даже его изобретатель А.Лебедев.
        • НЛО прилетело и опубликовало эту надпись здесь
          • +2
            не знаю, я не зарегистрирован там… может люд добрый подскажет
            • 0
              Надеюсь вы не имеете ввиду обычный аякс?!
              • –3
                Нет. Полный.
            • 0
              Занимаюсь чем то подобным в последнее время. Но реализация на jQuery.
              • 0
                да, при желании, такое можно и на jQuery написать
                • +3
                  Нет. Только при нежеланиии такое пишут не на отработанных библиотеках, а на самопальных.
                  • +1
                    jQuery хорош только для быстрого развертывания. Для профессиональной разработки он подходит мало
                    • +2
                      А можете рассказать, почему?
                      • –4
                        потому что слишком универсален, как следствие громоздок
                        • +13
                          да, с удовольствием (уже целую статью надо писать «почему плох jQuery» :). Сразу хочу отметить, что считаю эту библиотеку идеальным выбором для небольших сайтов.

                          Итак, почему jQuery плох для профессиональной разработки:
                          1. Большой размер файла (сейчас порядка 55Кб в несжатом и 16Кб в сжатом виде) — 70% заявленных возможностей никогда не будут использованы.
                          2. «Тяжелая» инициализация самого ядра (100-300мс, это не учитывая дополнительных модулей).
                          3. Про UI я вообще молчу — эта махина раза в два тяжелее самого jQuery.
                          4. Если нужна какая-то более-менее «продвинутая» функциональность — все равно приходится ее искать либо писать самому — где экономия времени?
                          5. Сторонние модули обычно довольно паршивого качества (и хорошо, если не захламляют глобальное пространство имен).
                          6. Нет политики зависимостей модулей и динамической их подгрузки — если «собираешь велосипед» из набора модулей, то в head-страницы приходится выстравить целый домик из подключений. А если на разных страницах сайта нужна разная функциональность? Такое решение все равно ручками приходится писать (да, есть мысли по поводу этого для Web Optimizer — сделать авто-загрузку дерева модулей на основе script в head).
                          7. Обработка большого DOM-дерева происходит медленнее, чем хотелось бы (из-за обверток и не очень быстрого Sizzle — YASS без кэширования обгоняет его на 40-50%). Слава богу, что с утечками памяти здесь нет особых проблем, как в mootools.

                          Ну, и еще пара кастомных пунктов по личным предпочтениям.
                          • 0
                            Отличная рецензия!
                            По поводу пункта №6: очень жду, есть большая проблема в системе — загружается порядка 20-30 js-файлов, что очень сильно тормозит.
                            • +1
                              Надо компрессор одного файла использовать.
                              ОЧЕНЬ! помогает.
                              • 0
                                Это да, но когда страничка собирается из яваскрипт-файлов модулей, блоков и проч., читай динамически, то все не запихнуть в один файл…
                                • +1
                                  Запихнуть.
                                  Это всё на стороне сервера.
                                  Даже сжать там можно или упаковать. (на php или as к примеру).

                                  Но лучше конечно поменьше файликов)
                                  Там после 20 (даже после 15) могут быть конфликты, если много 3rdparty плагов.
                                  • 0
                                    Ага, то есть я получаю содержимое моих плагинов, библиотек и т.п на стороне сервера. и помещаю в один файл, который и будет подгружаться уже?
                                    ОН упаковывается (?), и кладется во временную папку (?) для едино кратного использования (?)
                                    • 0
                                      Ага. Темповую. Зачастую всё происходит в процессе загрузки с объединением через скрипт либо в движке, либо по .htaccess + пхп модреврайтом.
                            • +3
                              Простите, но все эти минусы на столько очевидны, что, боюсь, вы не раскрыли глаза даже самым начинающим джикверивцам.

                              Загрузка 300 мс — это только для ие6?
                              Размер — используйте репозиторий гугла. Картинки все равно больше весить будут.
                              Согласен с тем, что UI адски глюковат, сам им не пользуюсь.
                              • –5
                                Нет, для страницы например в 60 Кб применение jquery явно необоснованно. А скрипты сильно тормозят загрузку, у меня например как вкладка хабра грузится так Опера подвисает ненадолго.
                                • +4
                                  Не понимаю, как связаны хабр, джиквери и подвисания. Разрублю как я этот порочный круг:
                                  1) На хабре не используется джиквери, тут mootools.
                                  2) Любая страница, когда грузится тормозит оперу и фф, такая уж у них архитектура. Проверить это легко — достаточно загрузить одну и туже страницу с отключенным и включенным JS, и постоянно крутить прокрутку, замечая подвисания. У меня с JS подвисаний было меньше, что можно списать на погрешность эксперимента.
                                  3) По моим тестам только ие6 делает eval скомпрессированной версии библиотеки порядка 100мс, все остальные не поддаются измерению.

                                  Ну и конечно решать, использовать или не использовать джиквери на конкретном сайте, решать разработчику. Но говорить что ни в коем случае не стоит использовать джиквери негде, потомучто его не стоит использовать на сайтах размером 60 кб — маразм.
                                  • 0
                                    «Джейквери» тогда уж.
                                    • +2
                                      Я имел в виду не столько jQuery, сколько вообще «тяжелые» js-библиотеки.

                                      Тормозит имеенно Хабр, если на странице много комментов, хотя может это виновата не js, а сложная структура документа. Сейчас запустил фоном загрузку man mplayer размером 1мб — тормозов заметных нет.

                                      > По моим тестам только ие6 делает eval скомпрессированной версии библиотеки порядка 100мс

                                      Это на быстром компьютере, где все время процессора отдано ИЕ. Чуть условия отличаются о идеальных — тормоза усугубляются.

                                      Кроме того, разработчики-инвалиды некоторых сайтов, например на WordPress с кучей плагинов, ставят в head кучу скриптов, и пока эти скрипты не загрузятся, сайт не отображается. Плохо ли это? — Это ужасно. Я хочу чтобы контент появлялся через 1-2 с после клика, а не ждать пока там загрузится 100 Кб скриптов (или придет подтверждение, что они не обновились). Хотя тут опять же больше вина студентов-разработчиков.

                                      часто кстати jQuery используется только для того, чтобы отобразить простой эффект, для этого нет необходимости использовать сложную библиотеку, и нет необходимости использовать $('asasa'), там где хватает getElementById().
                                  • +2
                                    не хочу начинать очередной холивар — например, я поставил на webo.in jQuery, развернул за 10 минут и забыл на год.

                                    Если мне нужна экстремальная производительность — пользую YASS и производные — и радуюсь жизни
                                  • +2
                                    Зачастую непонятен смысл использования ajax на небольших сайтах. А fullajax хороший пример, ничего кроме раздражения у меня этот способ загрузки не вызывает + ещё выскакивает запрос от флеша по поводу сохранения информации локально.

                                    1. Смотря с чем сравнивать. У нас в проекте, js измеряется в мб, и jquery не выглядит такой большой на фоне, да и кэширование существует, jquery cамо по себе не часто изменяется. Проценты зависят от того что вы используете и есть ещё сам процент использования этих процентов :) Скажем мне, нравится писать конструкции типа $('#block')[allow? 'show': 'hide']();
                                    2. См. пункт 1
                                    3. Мне кажется речь идет про jQuery. Это как script.aculo.us приписать к prototype
                                    4. Экономия в том, что вы пишете логику, а не занимаетесь поиском реализации фишек которые будут работать во всех браузерах (jquery — уже содержит эту работу)
                                    5. Хз :) Можно и не подключать что попало
                                    6. 7. да
                                    • –5
                                      по п.4 как раз можно разделять JS-программистов на профессионалов и начинающих. Если профессионалу не нужна поддержка Opera 9.0 в проекте (или даже всей Opera) — он точно знает, какой код ему написать. И он точно знает, в каком браузере и почему он развалится.
                                      • 0
                                        Пользователям от этого сакрального знания не легче :) А у них такое разнообразие в браузерах, операционных системах и настройках, что просто иногда удивляешься.
                                        • –4
                                          и? уделять 50% времени на поддержку 1% пользователей? Очень мало проектов, где это коммерчески выгодно
                                          • +3
                                            У этого 1% пользователей запросто может быть 50% денег которые можете заработать и их поддержка может влиять на продажи продукта/сервиса.
                                            Скажем есть такая категория пользователей, которая может обновлять любой установленный софт до бесконечности и это одно из основных их занятий, поиск новинок :) Но денег которые они могут принести вам, у них нет, родители не дали.
                                            А вот корпоративные пользователи могут быть очень консервативными, но они готовы платить за поддержку.
                                            Как-то так, для меня это реальность.
                                            • –4
                                              не смешите меня :) 1% пользователями являются обычно те, у кого установлены редкие (или старые) сочетания браузеров / операционок.

                                              Деловые люди ставят обычный пакет софта (и новый к тому же) — и используют его. Они в этот 1% не попадают.
                                              • +2
                                                Рад что хоть кого-то смешу :) У нас >2млн пользователей и >50тыс. бизнес-аккаунтов. Сказать кому-либо из них, что мол знаете, «я профессиональный программист и потому не собираюсь поддерживать [IE|Opera|FF|Safari]» не могу. Во-первых, не считаю себя профессионалом уж таким, а во-вторых меня не поймут.

                                                Есть конечно крайние варианты, типа FF 1.0.7 на Tiger :)
                                                • 0
                                                  Не будем мериться пиписьками, я ведь тоже не с потолка цифры беру.

                                                  1% — он на то и 1%, что денег мало дает. Вот если страница в IE разваливается — сразу по шапке, ибо IE пользуются 50%. А если под Opera — так можно недельку-другую покопаться, посмотреть.

                                                  Чувствуете разницу?
                                            • +5
                                              1% пользователей может стоить 50% репутации
                                            • +1
                                              Поэтому вы часть этих пользователей оставляете за бортом, понадеявшись на нечто чужое большое и сложное, что вам кажется кроссбраузерным.
                                              • +1
                                                Одно время работал с нами Brandon Goldman (dimensions, live и т.д., один из коре коммиттеров jQuery), так что это не совсем чужое :) Размеры и сложность относительны.
                                                «Понадеявшись» и «кажется». Тикеты в которых ошибка происходит по вине jquery, либо прошли мимо меня, либо я о них не помню.
                                                • 0
                                                  А причём здесь тикеты-то?
                                                  • +1
                                                    При том, что есть реальный проект с большой пользовательской базой и я получаю тикеты если у них что-то не работает по моей вине. Путь синтетических тестов и сферических коней в вакууме конечно дает цифры которые можно сравнивать, но не факт что они будут относится и к реальной жизни.
                                                    • 0
                                                      Понятно, я первоначально подумал, что вы о «родных» тикетах либы, а вы об отсутствии жалоб в свой адрес. Полагаю, отсутствие == кроссбраузерность. Не логично, не проверяемо, не обобщаемо, но с реальной жизнью соотносится, согласен.
                                        • +1
                                          sunnybear, jQuery нужен не профессионалам, не «серьезным разработкам», не для «небольших сайтов». jQuery нужен для создания JS-оболочки в помощь разработчику. Нужен для выхода на более абстрактный уровень при написании JS кода.

                                          Создатели jQuery предлагают вам сосредоточиться на главном вместо того, чтобы громоздить глючноемкость кода в собственных велосипедах, чтобы забыть о разнице обработки js разными броузерами, чтобы не писать постоянно XMLHTTPREQUEST с кучей исключений, что уже написано и перенаписано множество раз другими людьми и вылизано до совершенства.
                                          • 0
                                            да знаю я, что такое jQuery. Знаю и уважаю начинание Resig'а. Но это не мешает мне эту библиотеку ругать :)
                                            • 0
                                              Прозрел что ли? ;)
                                              • –1
                                                да, прикинь, проснулся сегодня утром — и прозрел! :)
                                          • +2
                                            >глючноемкость кода в собственных велосипедах

                                            Стандартный приём — уничижительно отозваться о всех js-программистах и о качестве их кода. Все кругом глючные велосипеды, а jQuery весь в белом, вылизанный до совершенства.
                                            • 0
                                              На сколько бы не был велик и могуч талантливый программист, его код всегда подвержен насыщением глючноемкостью. Это так же справедливо, как справедливо невозможность творение кода без процесса отладки. И воздействовать на глючноемкость может каждый программист. Для увеличения глючноемкости достаточно отказаться от чужого опыта и положиться в написании кода полностью на свой профессионализм. Для уменьшения глючноемкости можно использовать чужой опыт, готовые проверенные решения и уменьшая количество собственного кода вообще.
                                              • 0
                                                Я поддерживаю вашу логику. По ней фреймворк должен быть всего один — первый. Все последующие только увеличиваю глючноёмкость, полагаясь на профессионализм автора, вместо использования первого. ;)
                                                • 0
                                                  Фреймворк должен быть только один — лучший ;)
                                                  • +3
                                                    ага и по улице должна гулять только одна, самая красивая девушка :)
                                            • 0
                                              jQuery помогает сосредотачиваться на главном? Да нет, jQuery просто помогает работать с DOM'ом; а это ни разу не самое главное.
                                              • 0
                                                про аякс и события забыли?
                                                • +1
                                                  события это часть DOM'а, они даже называются DOM Event. и в них нет ничего сложного (ну, кроме mutation, которые в ие, по сути, отсутствуют).
                                                  аякс требует совсем мало кода, в общем случае — пять строчек, и его реализация тоже «ни разу не самое главное».

                                                  суть в том, что сайты надо делать не механически (чтоб работало). вся механика должна строиться динамически на основе логики, а логика должна быть гибкой и расширяемой.

                                                  то, что делается по схеме jQuery и 100 плагинов, уж извини, подделки со сроком годности «пока не тронут»
                                            • 0
                                              если надо писать, то почему не пишете? было бы интересно почитать.
                                              • 0
                                                потому что и так два блога активно веду :) — просто некогда
                                              • 0
                                                Под ui можно кастомный сетап сделать. 8-11кб в mini или упакованном виде.
                                                Пара компонентов и tabs.

                                                С гугла грузится очень быстро + можно сжать gz.

                                                А в остальном всё верно.

                                                3rdparty там покруче, чем в других фреймворках это точно) количеством бьют легко.

                                                Разница в ядре.
                                                Сделать jQuery полегче или бильдер кастомного ядра, это будущее.
                                                • +1
                                                  Самым существенным вижу 4-й пункт. Однако, и тут не согласен с вами. Приходится писать — да. Но быстрее в разы — это факт. Не нужно думать про целую кучу кросс-браузерных измочек, стандартных низкоуровневых штучек (которые лучше то уже и не сделаешь) и всего такого прочего.
                                              • 0
                                                >jQuery хорош только для быстрого развертывания. Для профессиональной разработки он подходит мало
                                                Среди сайтов использующих jQuery:
                                                https://addons.mozilla.org/en-US/firefox/
                                                drupal.org/
                                                digg.com/

                                                • –1
                                                  а чем это противоречит высказыванию? odnoklassniki / vkontakte используют jQuery? rambler / yandex / mail.ru / google?
                                                  • 0
                                                    Тем что достаточно много вполне профессиональных команд используют в своей работе движки типа jquery. И находят что это лучше или по крайней мере дешевле чем разработка собственных js-движков.
                                                    • 0
                                                      Профессиональных команд? Да тут даже одного невозможно днём с огнём найти, чтоб не был инфицирован фреймворковым заболеванием и знал предмет хотя бы на четыре с минусом. А ты про какие-то фантастические команды, да которые ещё и к каждому проекту приписаны. Нету их по большому счёту, нету, а «гадость пьють… из эконооооомии»…
                                                      • 0
                                                        >Профессиональных команд? Да тут даже одного невозможно днём с огнём найти,
                                                        Ничего не понял :)
                                                        Ну ладно. Здесь с вменяемостью не ах. Но разработчики .NET давно включили в состав пакета jquery. Гугловские разработчики в порядке частной инициативы толкают code.google.com/apis/ajax/playground/
                                                        Ну неужто все инфицированы?

                                                        >а «гадость пьють… из эконооооомии»…
                                                        А что не гадость? Все гадость. Но гадостности стандартных решений есть много плюсов, которые полностью отсутствуют в самопальных библиотеках — документированность, кроссброузерность, поддержка комьюнити, многократное тестирование.
                                                        • –2
                                                          >давно включили в состав пакета jquery

                                                          А чего бы не воткнуть в любой жирный пакет крошечный (по меркам пакета) скрипт? Популярность помогает популярности, ничего удивительного. Каждый за себя. Я тебе больше скажу, я где-то встретил обсуждение, что пора её воткнуть прямо в IE и прочие браузеры, чего грузить, если ВСЕ!!! используют. Серъёзно обсуждают.

                                                          >Гугловские разработчики

                                                          Стыд и срам, но понять можно. ;)

                                                          >документированность, кроссброузерность, поддержка комьюнити, многократное тестирование

                                                          Джиквери не кроссбраузерна и не была таковой ни секунды своего времени. Документированность API — огромный плюс, но разбор внутренностей важнее (вот ниже привели строчку кода с регекспом, пусть приведший эту строчку её разберёт, чтобы осознать качество документации). Миллионное коммьюнити априори некомпетентно в должной степени, т.к. это и есть целевая аудитория либ, я не обидеть кого-то хочу, а так и есть по логике вещей. Многократное тестирование есть совершенно обыденная практика для «browser scripting» и каким-то чудом это тестирование осуществлялось в первобытные времена (до пришествия).
                                                          • 0
                                                            Еге все-таки нашли две команды в чьем профессионализме вы не стали сомневаться :)

                                                            >Джиквери не кроссбраузерна и не была таковой ни секунды своего времени.
                                                            А что кроссброузерно FullAjaX? Prototype?
                                                            Сколько Google затратил времени и денег (а гадость типа пьем из экономии) чтобы обеспечить совместимость с Opera? Победили?

                                                            >вот ниже привели строчку кода с регекспом,
                                                            А сколько таких строчек разобранных и не разобранных будет в самопальном фреймворке?

                                                            >Миллионное коммьюнити априори некомпетентно
                                                            И это тоже неплохо когда речь идет о массовом тестировании. Есть ли возможность такого тестировани и вылавливания узких мест типа регекспа у авторов самопальных фреймворков?
                                                            • 0
                                                              >в чьем профессионализме вы не стали сомневаться

                                                              Это не воспрос профессионализма, а вопрос о причине копипаста кода, который не просто можно изменить/улучшить/привести к своим задачам, а нужно это сделать, если ты знаешь предмет. Честно об этих причинах говорят единицы, остальные продолжают распространять мифы про кроссбраузерность, лучший в мире код и вообще… идеальный велосипед в гости к нам приехал.

                                                              >Победили?

                                                              Не знаю, не слежу за их завоеваниями.

                                                              >Есть ли возможность такого тестирования и вылавливания узких мест

                                                              Автор + ядро — вот и все тестировщики и вылавливатели.

                                                              >типа регекспа

                                                              Это не просто регексп, это показатель стиля и того, как не работает документация и как происходит тестирование с вылавливанием.
                                                              • 0
                                                                >Автор + ядро — вот и все тестировщики
                                                                Ну так о каком качестве тестирования вообще можно говорить когда функции тестировщика и разработчика совмещены?

                                                                >ак не работает документация и как происходит тестирование с
                                                                > вылавливанием.
                                                                Абсолютно верно. Но в самопальных велосипедах все обстоит на порядок хуже. И с тестированием и с правкой багов и с документированием.

                                                                >Честно об этих причинах говорят единицы,
                                                                Что могут предложить эти единицы? Свой велосипед?

                                                                • 0
                                                                  >Ну так о каком качестве тестирования вообще можно говорить когда функции тестировщика и разработчика совмещены?

                                                                  Добро пожаловать в мир javascript.

                                                                  >в самопальных велосипедах все обстоит на порядок хуже

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

                                                                  >Что могут предложить эти единицы? Свой велосипед?

                                                                  Велосипед, мопед, мотоцикл… какая разница.
                                                                  • +1
                                                                    >Добро пожаловать в мир javascript.
                                                                    Нет. Это ваш мир. В других мирах тестированием и разработкой занимаются разные люди. Иначе это даже тестированием назвать нельзя. Так мышкотыканье.
                                                                    • +1
                                                                      Ну, да, зачем мышкотыканье, если есть отряд эсэсовцев, которые страшно буравят скрипт глазами, без рук. Какие же всё-таки мифы сложились вокруг фреймворков — и найденный велосипед-грааль, и тотальный тебе поиск багов, и чудо-документация, и архикросссбраузерность, и какое-то массовое вселенское тестирование, и… чего там ещё… ;)
                                                                      • +1
                                                                        В тех конторавх в которых приходилось работать вместо отряда эсесовцев — бета-тестеры и служба тех-поддержки + аудитория сайтов от десятков до сотен тысяч посетителей в день. Среди этих посетителей всегда найдется десяток параноиков, ищущих глюки повсюду.

                                                                        А Грааля нет. Есть программы с умеренным количеством глюков, с неумеренным и с неизвестным. FullAjax — последнее.
                                                                        • 0
                                                                          Каждая новая версия чужого скрипта автоматом переносит его (скрипт) в разряд «программ с неизвестным количеством глюков». Параноики всё начинают заново, а техподдержке остаётся только надеяться, что мистер Смит или кто там не накосячил, оперативно разберётся с проблемой и любезно научит, в какую строчку смотреть. Ответсвенное поведение перед 100-тысячной аудиторией.
                                                    • 0
                                                      narod.yandex.ru/ — использует :)
                                                    • +2
                                                      Хорошо бы определится, что стоит за термином «профессиональная разработка». Не вес же сайта или его популярность, или имя владельца… надеюсь.
                                                      • +1
                                                        хорошо бы. Но это ведь не я придумал «Для профессиональной разработки он подходит мало».
                                                        • –1
                                                          я попробую: «когда onclick'и не спасают» :)
                                            • 0
                                              а что мешает использовать все как по старинке?
                                              <a href='/news/' onclick='return getNews();'>новости</a>
                                              ?
                                              • 0
                                                я имел ввиду чем плох вариант?
                                                • +3
                                                  Тут уже дело не в плохо\хорошо, это еще один способ, вполне кашерный и не требует для этой магии подключать фреймворки.

                                                  p.s. Ваш вариант мне не нравится, чисто визуально, глаза устают бегать по кучи этих онклик и ретурн :)
                                                  • +2
                                                    Необходимостью прописывать для каждой ссылки js. В вашем случае еще и функцию.
                                                    • –2
                                                      Некрасиво.
                                                      абстрагируясь от FoolAjax главное соображение — разделение данных (HTML) от поведения (JS). В распространенных js-фреймворках типа jQuery/Prototype и др. все что относится к поведению выносится за пределы HTML.

                                                      >Необходимостью прописывать для каждой ссылки js.
                                                      Автор очевидно прописывает все руками. Можно. Но лучше это автоматизировать. А пр и автоматизации разницы нет. Остаются только чисто эстетические пристрастия.
                                                      • +2
                                                        если это все только для того чтоб отделить JS от HTML, тогда можно ведь сделать
                                                        function changeLink( id, func )
                                                        {
                                                        document.getElementById( id ).onclick = func;
                                                        }
                                                        changeLink( 'newsLink', showNews );
                                                        changeLink( 'guestBookLink', showGuestBook );
                                                        changeLink( 'aboutLink', showAbout );
                                                        (это было грубо говоря для примера)

                                                        то что он сканит и фильтрует линки по адресам, это несомненно плюс, но часто ли адреса в меню бывают типа:
                                                        some_url?id=1
                                                        some_url?id=2
                                                        some_url?id=3
                                                        ? если честно, я ниразу таких не делал
                                                        • –1
                                                          >если это все только для того чтоб отделить JS от HTML,
                                                          Нет. Не только. Точнее если только, то использование библиотек просто неоправдано.
                                                          Но для больших приложений, библиотеки позволяют решить много проблем. В первую очередь с кроссброузерностью. Рано или поздно вас утомит писать два решения для всплывания событий или асинхронных запросов, и вы напишете свою собственную библиотеку, как сделал автор статьи или воспользуетесь готовыми решениями.
                                                        • 0
                                                          «все что относится к поведению выносится за пределы HTML» это далеко не «разделение данных (HTML) от поведения (JS)». Поведение основывается на логике, к которой фреймворки не имеют никакого отношения. $(«a»).click не логика, а банальная работа с DOM'ом, которая должна быть между делом.
                                                    • +9
                                                      Хм, я не сторонник fullAJAX сайтов, считаю, что AJAX нужно использовать только в определенных ситуациях, а не «грузить» через него «целые страницы». Определенные ситуации: подгрузка выпадающих списков, отправка формы и т.д.
                                                      Это мое личное мнение.
                                                      • 0
                                                        Минус ajax в неправильных руках — невозможность дать линк и перемещаться вперед назад и еще проблемы с индексацией (что решает эта работа). В ином случае только плюсы: удобство и скорость. Как можно быть противником удобства и скорости? ;)
                                                        • +3
                                                          >Минус ajax в неправильных руках
                                                          Таки да. Дай Вам Бг мудрости не впасть в foolAjax
                                                      • 0
                                                        Ну я обычно использую для этого дополнительный класс и скрипт который навешивает сверху необходимые действа и все это делаю на jQuery, в общем-то иметь для этого небольшой кусок кода тоже хорошо :)
                                                        • +12
                                                          вот наркоманы. jQuery давно такое умеет.

                                                          [a href='/article/1.html' target='content_body' type='ajax']

                                                          $('a[type=ajax]').click(function() {
                                                          var t = $(this);
                                                          $('#'+t.attr('target')).html($.load(t.attr('href')));

                                                          });

                                                          а самые сообразительные могут так же делать формы ;)

                                                          • +4
                                                            вы эту фигню валидатором не пробовали проверить?
                                                            У ссылки есть rel class title. Нафига вам type вводить? Да и таргет нестрикт

                                                            А по поводу jquery — да. Но автор фанатеет от беспредельного аджакса, под который его библиотека заточена. Там много мелких и бесполезных (для нормальных приложений) мулек.
                                                            • –13
                                                              вы что до сих пор пишете по всем стандартам?
                                                              сайты пишутся для людей, а не для стандартов. да и вот в соседней ветке вчера был холивор по поводу W3C и XHTML 1.0 / XHTML 1.1

                                                              я считаю W3C неадекватными и не использую стандарты, делая при этом сайт более удобным как для юзеров так и для девелоперов.
                                                              • 0
                                                                >я считаю W3C неадекватными и не использую стандарты
                                                                Вы редкий оригинал. Отчасти я с вами солидарен Dura lex, очень большая дура, но sed lex

                                                                >делая при этом сайт более удобным как для юзеров так и для девелоперов.
                                                                а вот это вы очень зря. Валидатор выдает не только ошибки но и варнинги. варнинги конечно игнорировать можно. Но до поры до времени. когда нибудь мелкий варнинг превратится в большой геморрой.

                                                                >вы что до сих пор пишете по всем стандартам?
                                                                Верстку обязательно. И только в strict
                                                                А на выхлопе как получится. Скажем .NET сама по себе генерирует кучу ошибок. Мой фетиш — клиентский XSLT — вообще одна большая ошибка.
                                                                • +2
                                                                  ИМХО: Еслибы небыло этих стандартов, то наверно и мы бы с вами не знали, что такое интернет.

                                                                  xhtml принес мир и порядок в веб разработку :)

                                                                  p.s. Правила есть правила.

                                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                                    • 0
                                                                      Никто вас не обязывает верстать в XHTML, так как это стандарт создавался с целью улучшения интеграции с XML.

                                                                      А вот где в xhtml беспорядок так я понять не могу, для меня он понятней и логичней, чем тот же html. Некоторые вещи в html кажутся просто дикими. Такие как необязательность закрывания тега, атрибуты без значений, без кавычек, и гора безсмысленных тегов.

                                                                      В общем вывод такой, ждем html5 и xhtml2.

                                                                      Еще очень угнитает то что некоторые разработчики браузеров, видимо тоже считаю w3c неадекватным, и тормозят весь прогрес.
                                                                      • НЛО прилетело и опубликовало эту надпись здесь
                                                                  • 0
                                                                    я надеюсь хоть Вы не ругаете IE6 за его несоответствие стандартам, потому как он с Вами солидарен в этом мнении :) он тоже плюет на стандарты и делает все для людей, жаль люди этого не замечают

                                                                    а серьезно: стандарты позволяют разным приложениям действовать скооперированно, бе w3c в инете был бы сплошной бардак, каждый делал бы то что хочет (сейчас это не так запущено), и их нужно соблюдать хоть в меньшей степени
                                                                    • +2
                                                                      ie6 я ругаю потому что помню Оперу-6 и NN-6 были таким редкостным отстоем (и в части соблюдения стандартов тоже), что ie6 на их фоне был суперзвездой. Да он и сейчас очень даже ничего, несмотря на древний возраст.

                                                                      >бе w3c в инете был бы сплошной бардак,
                                                                      Спорный вопрос. Вполне могло сложиться два стандарта. Один от MS второй от W3C. Стандарт от MS как более логичный и перспективный выдавил бы W3C на задворки, вместе с броузерами, которые его поддерживают. А так да переделка замечательного броузера ie5 под стандарт w3c породила как раз бардак. И стандарт крив и поддержка его в ie6 крива.
                                                                      • 0
                                                                        в Вашем каменте есть одно важное слово " ie6 на их фоне был суперзвездой", дело в том что программам, чтоб быть качественным продуктом, свойственно развиваться, а МС забили на ие, пока не потеряли огромную часть рынка, между прочим в w3c полно MS предложений, и все это входит в стандарты MS и др. предлагают, дяди смотрят на целесообразность, и вносят в стандарт или нет

                                                                        это лучше чем все браузеры будут делать что захотят, людям то пофигу, они видят интернет везде одинаково, а каково тем кто делает этот интернет?
                                                                      • 0
                                                                        Сорри. В предыдущем сообщении опечатка. Естественно:
                                                                        ie6 я НЕ ругаю.
                                                                      • –9
                                                                        > сайты пишутся для людей, а не для стандартов
                                                                        золотые слова!
                                                                        • +1
                                                                          сайты пишутся для соблюдения стандартов, стандарты пишутся для браузеров, браузеры пишутся для людей = > сайты пишутся для людей
                                                                          • 0
                                                                            о да.

                                                                            то-то я часто вижу кривущие сайты с png-хами W3C Valid
                                                                            а ведь они для меня написаны. хм?

                                                                            Да и вы что правда верите, что без магии в одном стандарте можно сверстать сложный сайт, чтобы оно хорошо отображалось под IE6, IE7, IE8, Opera 9, Opera 9.5, FF 2, FF3?

                                                                            особенно когда чтобы сделать одну кнопку — надо для неё 3 дива делать, и не забыть див clear после него и вообще после каждого контент-блока и модуля.

                                                                            @Fear86,
                                                                            > ИМХО: Еслибы небыло этих стандартов, то наверно и мы бы с вами не знали, что такое интернет
                                                                            да что ты, родный? я в 13 лет (8 лет назад) сделал свой первый сайт в фронт пейдже с использованием флеша и много JS-а и на фреймах. и одно время мой сайт висел в топе сайтов города, а ведь я тогда и знать не знал, что такое стандарты. я тогда ещё даже не знал что у td есть align и всё делал Br-ами и непрерывными пробелами.

                                                                            так что уж поверь мне, ЮЗЕРУ — ПОФИГ как у тебя что сделано. ему главное чтобы было красиво. ровно и удобно. и не обязательно придерживаться стандарта что бы достичь этого результата

                                                                            p/s сорри что всё в одном посте. 5 минут влом ждать
                                                                            • 0
                                                                              да, верю, делаю, делюсь знаниями. Без IE6/7 было бы намного легче. Если бы Firefox / Opera / Safari / Google / еще бог знает сколько альтернативных браузеров поддерживали IE — было бы тоже намного легче.

                                                                              Мир, очевидно, движется к стандартизации документов W3 (посмотрели — написали стандарт — применили стандарт — посмотрели на применение — применили еще больше — и т.д.), и именно W3, а не MS.

                                                                              Хотя, мне кажется, в случае с MS был бы тоже «стандарт», и точно так же разработчики плевались бы и говорили «мы делаем сайты для людей», подразумевая этим, что им лень делать стандартные сайты для людей — WCAG / ATAG / ARIA ведь тоже не с потолка придумали.
                                                                              • 0
                                                                                К стандартизации средств разработки движутся все. jquery и prototype — это одна из составляющих этой тенденции.
                                                                                • 0
                                                                                  ага еще оденут вас всех одинаково, подстригут также, дадут флаги в руки — и пойдете стройными дружными рядами есть одинаковые полуфабрикаты.
                                                                                  мир многообразен и при этом не безобразен.
                                                                                  • 0
                                                                                    Подавляющее большинство сайтов сделано на HTML. Следует ли из этого что они все до одного похожи, идут стройными рядами, и не оставляют вам как разработчику места для фантазии?
                                                                                    • 0
                                                                                      вообще говоря, да — за рамки тегов тяжело выйти :)
                                                                                      • 0
                                                                                        Ага и ведь как то удается из одинаковых тегов сделать совсем разные сайты?
                                                                                        • 0
                                                                                          ага, и на яваскрипте написать разные библиотеки :)
                                                                                          • 0
                                                                                            Каждому свое.
                                                                                            Я получаю кайф, когда запускаю свой сотый сайт, вы — когда выкладываете выкладываете сотый релиз все той же библиотеки.
                                                                                            Дело вкуса.
                                                                                            • 0
                                                                                              никак не угомонишся :). герой темы прямо. дул бы те отселя колбаской по малой спаской. достал уже реально. пиши свои блоги про плагины, иди поднимай 101-ый сайт. что-то не нравится? свободен, тебя специально сюда никто не приглашал. реально достал уже своим хамским тоном. прям как «быдло» какое-то… так и ищет где-бы ущипнуть.
                                                                                              • 0
                                                                                                >дул бы те отселя… свободен, тебя… своим хамским тоном...«быдло»

                                                                                                Прое́кция (лат. projectio – бросание вперед) — психологический механизм, относимый к защитным, впервые рассмотренный Фрейдом. Заключается в неосознанном приписывании кому-либо или чему-либо собственных мыслей, переживаний, мотивов и черт характера.
                                                                                      • 0
                                                                                        почемуто ваша фантазия ограничена и загнана в рамки HTML верстки и плагинов для jQuery.
                                                                                        по ходу ваших комментариев видно что фантазии которые выходят за ваши рамки и стереотипы оцениваются вами крайне негативно.
                                                                                        карта — не есть территория.
                                                                                        • 0
                                                                                          Ну что вы. Например в PHP уже сложилось ядро фреймворков. И там то же самое идут базары что лучше — велосипед или отлаженные решения. .NET которая медленно но верно выдавливает с рынка всех остальных сам по себе фреймворк. Но и там появляются какие-то надстройки.

                                                                                          Унификация — это общая и универсальная тенденция. Закон перехода количество в качество. Куча разрозненных человеческих знаний в одной или разных областях рано или поздно дает предпосылки к качественному скачку.
                                                                                          • 0
                                                                                            ну так почему же вы мешаете процессу? вы прям таки орете тут по всей теме что уже все сделано, потом утверждаете что существует какой-то закон кол-ва в качество. Сядьте в конце концов напишите плагин нормальный кроссбраузерный для jQuery и сопровождайте его себе на здоровье. Направление движения я вам дал.
                                                                                            • 0
                                                                                              >ну так почему же вы мешаете процессу?
                                                                                              А может вы? :)

                                                                                              >что уже все сделано,
                                                                                              На ближайшие 4-5 лет да. Все. После включения jquey в состав .NET и подвижек в эту сторону со сторны Google думаю что вопрос решен.

                                                                                              > потом утверждаете что существует какой-то закон кол-ва в качество
                                                                                              Угу есть такой. Его проходят в старших классах школы и на первых курсах институтов.

                                                                                              >ядьте в конце концов напишите плагин нормальный кроссбраузерный для jQuery
                                                                                              Я этим занимаюсь давно. Сразу как соскочил с Prototype, а до этого с велосипеда собственной конструкции. И вам того желаю

                                                                                              • 0
                                                                                                интересно чем же это я мешаю процессу?
                                                                                                • 0
                                                                                                  Сбиваете с толку малых сих.
                                                                                                  1. Сама по себе технология FA весьма сомнительная.
                                                                                                  2. Подсадите 10 человек на свою библиотеку, а потом кините их — типа нет времени на поддержку, на развитие, на исравление багов, документирование, тестирование и т.п.
                                                                                                  • 0
                                                                                                    чушь, уже давно больше 10-ти человек пользуются. и документация потихоньку формируется.

                                                                                                    да ну вас. от вас то точно никакой пользы в данном случае, ничего конструктивного вы не сказали, только одни споры и обвинения…
                                                                                    • 0
                                                                                      jquery и prototype — это скрипты. И всё. Раньше было много мелких скриптов, валяющихся на скриптопомойках, и огромная масса «разработчиков» их копипастила. Позже появились небольшие т.н. dhtml-либы ака менюшки, гармошки и проч., точно такая же масса «разработчиков» копипастила уже их или даже покупала. Сейчас пришла эра больших либ, и снова та же масса «разработчиков»… бла-бла-бла. Причины копипаста везде одинаковы.
                                                                                      • 0
                                                                                        Есть существенная разница. База копипаста унифицирована, документирована, протестирована (в том числе на кроссброузерность) огромным комьюнити.

                                                                                        Верхний слой (то что копипастит масса) достаточно тонкий и в нем проще разбираться при поддержке/модификации чужих сайтов. В случае чего выбросить и поставить новый кирпичик проще чем было раньше.
                                                                                        • +1
                                                                                          Ну и что, некоторые жуткие скрипты работают и сейчас, менюшки бородатые распространены необыкновенно, это ни о чём не говорит, javascript (благодаря малой изменчивости IE и долгой жизни стандарта) весьма стабилен и выдерживает многое. Через 5-10 лет сеть точно также будет замусорена старыми весриями либ.

                                                                                          А среднему юзверю больше делать нечего, как писать куда-то там о том, что у него ошибки в консоль сыпанулись (если он вообще об этом знает). К примеру, я эти js-ошибки ловлю каждый день, но за много-много лет написал ровно ноль жалоб. Так что вот это вот «протестирована» на кроссбраузерность не очень звучит убедительно. Вокруг каждой либы есть активное ядро, которое осмысленно может гулять внутри кода, вот и все тестовые возможности. Да и что там тестировать, если во многих либах кроссбраузерность базировалась или до сих пор базируется на вычислении UA-строчки, с чем годами боролось js-сообщество…

                                                                                          пысы: причины копипаста одинаковы, документация и слепая вера только помогают быстрее сделать шаг.
                                                                                          • 0
                                                                                            > Вокруг каждой либы есть активное ядро, которое осмысленно может
                                                                                            > гулять внутри кода, вот и все тестовые возможности.
                                                                                            И с этой точки зрения полнота тестирования тем полнее чем больше ядро.

                                                                                            >документация и слепая вера только помогают быстрее сделать шаг.
                                                                                            Слепую веру я бы заменил на понимание необходимости унифицированных решений для массовых разработок.
                                                                                            Уникальные разработки — да будут использовать свои велосипеды. На то они и уникальные.
                                                                                            • 0
                                                                                              2 вопроса — Как измерить размер ядра, чтоб определить полноту тестирования? Чем массовая разработка отличается от немассовой?
                                                                                              • 0
                                                                                                Полноту тестирования с ядром разработчиков связали вы. Не я. Я считал что разделение разработки и тестирования — обязательное требование. И это не только к JS или IT относится. Н если угодно — в первом приближении ядро разработчиков и тестировщиков можно определить по багтрекеру. У jQuery он открыт.

                                                                                                >Чем массовая разработка отличается от немассовой?
                                                                                                Совокупным числом разработчиков использующих ту или иную технологию.
                                                                                                • 0
                                                                                                  > связали вы

                                                                                                  Я-то как раз хотел вас сдвинуть от количества к качеству, от «огромного коммьюнити» к ядру, к их навыкам, размер в этом деле не помощник.

                                                                                                  > Совокупным числом разработчиков

                                                                                                  Понимаете, если вы поставили ставку на фреймворк потому, что пришло «понимание необходимости унифицированных решений», то это и есть почти слепая вера, на которую вы имеете полное право, если уж доверились и решили не унифицировать самостоятельно. Но зачем рекламу принимать/выдавать за чистую монету. Кроссбраузерность получается потому, что вроде как везде, говорят, работает, протестировано идеально потому, что там ведь миллионы пользователей и так далее… «вроде как» и «говорят»…
                                                                                            • 0
                                                                                              jQuery отошла от UA строчки в 1.3 ветке.

                                                                                              Использование библиотек — необходимость современного высокоуровневого программирования. В большинстве случаев то что пишется не в машкодах уже основано на чьем-то коде. Можно каждый раз писать со своими «блекджеком и шлюхами», но это если у вас ресурсов более чем достаточно.
                                                                                              • 0
                                                                                                >jQuery отошла от UA строчки в 1.3 ветке.

                                                                                                Знаю. Попытка стать кроссбраузерной всего через 3 года после появления. Теперь дело за малым — силой мысли просканировать сеть на наличие старых версий и заменить их на новую, из новой версии удалить оставленную до сих пор проверку, потом достучаться до каждого программиста, кто это до сих пор использует, обучив его правильной тактике и извинившись за предыдущую лажу.

                                                                                                >Можно каждый раз писать со своими «блекджеком и шлюхами», но это если у вас ресурсов более чем достаточно.

                                                                                                Почему каждый раз-то? Напишите 1 раз свой реюз для своих задач и радуйтесь жизни.

                                                                                                • 0
                                                                                                  Не встречал идеального софта который бы работал сразу и без малейших недочетов. Проблема обновления, это проблема программистов которые занимаются своими продуктами. А уж извинятся тем более не за что, колхоз дело добровольное :)

                                                                                                  Реюз в виде jQuery уже написан и проверен в работе огромным количеством пользователей, народ там в курсе нововведений в браузерах которые можно использовать для ускорения/улучшения. Если же я сам буду этим всем заниматься, то сомневаюсь что останется время на что-либо другое, например, на написание здесь комментов :)
                                                                                                  В общем, использую jQuery и радуюсь жизни, а с проблемами от пользователей возникающие по причине использования этой библиотеки я как-то не очень сталкивался.

                                                                                                  Я не фанат :) просто мне выгодно и удобно её использовать, да есть недочеты типа, как hover не отрабатывает mouseout если увести курсор на scrollbar, но это мелочи.
                                                                                                  • 0
                                                                                                    >Проблема обновления, это проблема программистов которые занимаются своими продуктами.

                                                                                                    А продукт — это фреймворк или что-то, созданное на базе фреймворка? Проблемы первого продукта плавно перетекают в проблемы второго. Изменили в скрипте составляющую, которая вас касается — начинай переделывать со всеми вытекающими, совсем что-то удалили безвозвратно или стало вдруг тормозить — сиди на старой версии или начинай изучать скрипт, чтоб восстановить что-то точечно. Или совсем забросили — жди пока подхватят другие или вообще переходи на что-то другое. С точки зрения профессионального роста программиста это холостой и безответственный путь в никуда. С других точек зрения пользу можно отыскать…

                                                                                                    >проверен в работе огромным количеством пользователей

                                                                                                    Это миф, если бы так было на самом деле, обсуждаемый реюз не был бы тем, что есть. ;) Повторюсь, либы, ровно как и любой другой копипаст, адресованы в первую очередь тем, кто по тем или иным причинам не пишет сам. Подавляющее большинство (не все) не пишет самостоятельно по банальной причине отсутствия нужных навыков, что, в принципе, объяснимо. Отсюда этому т.н. «огромному количеству» целенаправленно что-то проверить, найти узкое место, выявить проблемы архитектуры скрипта, мины… крайне сложно, если вообще возможно без тотального реверса кода в целом. Они просто «радуются жизни», как вы говорите, ну, работает на сайте гармошка, выплывает тултипчик, желтит подсветка — значит, либа идеальна и проверена. Пойду всем расскажу.

                                                                                                    >просто мне выгодно и удобно её использовать

                                                                                                    Это понятно, на этом всё и держится. Спорить трудно. ;)
                                                                              • +1
                                                                                я бы хотел посмотреть в глаза тем людям, которые поставили за это высказывание плюс. Стандарты не должны являться фетишем, но только они могут гарантировать, что ваш сайт не развалится в очередном браузере — сейчас уже не W3 прислушивается к IE, а MS смотрит на стандартизованный мир и подстраивается под него.
                                                                                • 0
                                                                                  ага, с @target'ом очень удобные сайты получаются :)

                                                                                  PS я считаю Наполеоном себя и скоро сделаю Францию величайшей империей
                                                                                • 0
                                                                                  эту фигню вполне можно сделать валидной с помощью custom data attribute :-)
                                                                                • 0
                                                                                  Copy Source | Copy HTML
                                                                                  1. <a href='/article/1.html' target='content_body' class='my_link ajax'>Example</a>
                                                                                  2.  
                                                                                  3. $("a[@class='ajax']").click(function(){
                                                                                  4.     var t = $(this).attr('target');
                                                                                  5.     $('#'+t.attr('target')).html($.load(t.attr('href')));
                                                                                  6. });


                                                                                  p.s. Мне такой вариант приятнее и валидацию проходит :)
                                                                                  • 0
                                                                                    валидность поперек семантики встала. что за любовь такая, использовать @class в качестве помойки? «ajax» как-то изменит стилизацию ссылки?
                                                                                    • +2
                                                                                      Вобщем-то ссылки, которые не требуют перезагрузки, можно подчеркивать пунктирной линией…
                                                                                  • 0
                                                                                    Ты даже не знаешь как работает банальный target ;) зато уже заступился за любимый велосипед. Юзерам без JS (их же еще не отменили?) будет очень не удобно работать с сайтом, с которого все ссылки открываются мало того, что в другом окне, так еще и в одном и том же другом окне.
                                                                                    • –1
                                                                                      В его примере content_body — это, очевидно, iframe.
                                                                                      • 0
                                                                                        ну тогда я в замешательстве :) в статье говорится о перезагрузки контента, а он про фреймы пишет-де такое уже есть…
                                                                                        • 0
                                                                                          нет, это любой блочный элемент
                                                                                        • 0
                                                                                          Выше был представлен код в котором использовался type для определения, что данная ссылка должна быть обработана. Лично я использую для этого классы.

                                                                                          И потом никто не запрещал использовать существующий класс для работы скриптов.
                                                                                          • 0
                                                                                            Класс нужен для того, чтобы css накладывать. Никто не запрещал в классах указывать свои контактные данные.
                                                                                            Безусловно, класс можно использовать, чтобы скриптам было на что опираться. Допустим, вкладки какие-нибудь: класс «tabs» может служить и для css, и для js. Но не в данном случае: для ссылки достаточно посмотреть что в href'е значится (отсутствие протокола или его лишнее указание (ссылка на тот же сайт) и отсутствие target'а) и не захламлять html. Скорее, я бы оставил класс, чтобы избранные ссылки не попадали в выборку, у нас же все ссылки приводят к подзагрузке, да? И таргет туда же: должен быть стандартный контейнер и возможность указать другой.
                                                                                            И, кроме того, если нажатие ссылки будет инициализировать несколько контейнеров (товар из каталога, схожие товары, категория), то эти настройки тоже выкидывать в верстку?
                                                                                      • –1
                                                                                        Ребята, это все замечательно, спору нет, но не забывайте о людях.

                                                                                        Объясню почему.
                                                                                        На это есть 2 пункта:

                                                                                        1. Все эти штучки удобны, подгружают контент, но они лишают пользователя кнопочек вперед/назад… да, ФФ шарит эти дела и кнопки активны для аякса, но ИЕ без особого шаманства не позволит работать с кнопками.
                                                                                        2. УРЛ! Шагая таким методом по сайту адресная строка остается неизменной… Это тупо неудобно если на сайте менюшка сделана так… Лучше добавлять page.php#выбранный_айди_пунка… Но это уже за рамками статьи…
                                                                                        • +2
                                                                                          урл можно менять с помошью волшебной штучки #, страница не будет перегружаться, а JS будет знать какой контент надо подгрузить при нажатых кнопках вперед/назад, и не нужно спорить, это уже проверено временем и активно используется, просто тут не упомянули :)
                                                                                          • 0
                                                                                            вы на сайт сайт примера заходили? там нет указанных проблем. Единственное (что вы не указали) — это невозможность в IE7- сохранить страницу в избранном
                                                                                            • +1
                                                                                              > невозможность в IE7- сохранить страницу в избранном
                                                                                              IE7 это больше четверти пользователей.
                                                                                              • 0
                                                                                                всмысле? почему это нельзя сохранить в избранном? только проверил, все удачно сохраняется
                                                                                                • 0
                                                                                                  якори не сохраняются
                                                                                                  • 0
                                                                                                    в ИЕ7? да ну, как это не сохраняются, у меня XP + ИЕ7 — все ок
                                                                                                    • +1
                                                                                                      :) ты попробуй сохранить в избранном у IE две разные страницы с fullajax — и попереключаться между ними. Столько интересного про MS узнаешь…

                                                                                                      В IE6 еще веселее :)