mymind: Согласен, но на сегодня под Аяксом (AJAX) понимается возможность обновления данных страницы, без её перезагрузки.
Сегодня под аяксом понимается все что угодно, что связано с ЯваСкрипт.
mymind: А почему никто не упомянул об Subsys_JsHttpRequest,
Здесь есть несколько недостатков. Первый (от которого можно избавиться) - объектная модель страницы засоряется элементами <script>, причем довольно-таки быстро. Второй (который нельзя обойти) - это то, что сервер должен генерировать ответ в виде скрипта, что как минимум не приятно. Поэтому лично я, где можно использовать XMLHttpRequest, использую его. В остальных случаях конечно script.
webcat: mymind, как писалось выше проблема - кроссброузерность.
Поэтому затраты на подгонку пока нерентабельны.
Если уж быть абсолютно честным, то не такие уж большие затраты. Один раз на грабли наступил, в следующий раз обходишь. А граблей не так уж много.
Lor: Навернут идиотизма - сиди потом с каждой дурью разбирайся
Ну это вы конечно погорячились. Да и не заставляет ведь никто.
Lor: Самое смешное, что есть куча юзеров, которые вообще яву у себя выключают.
А и наплевать на них, попадаются еще такие, которые напишут свой браузер и сидят под ним из принципа, так что ж теперь из кожи вон лезть, чтоб у них страничка нормально показывалась?
Коля Дубр: Предлагаю додумать, как бы выглядел этот пример с использованием глоб. функций. Мысль ясна?
Ага. Но решение все же имеется. Лезем во все тот же prototype и смотрим на объект Element.Methods. Все его методы первым аргументом принимают ссылку на элемент. Следовательно использовать можно так:
Element.hide($('myDiv'));
Далее смотрим на метод Element.extend и понимаем что можно и так:
Element.extend($('myDiv'));
$('myDiv').hide()
Это конечно вызов лишней функции, но зато работает во всех браузерах, да и не сильно это увеличивает код, создаем мы к примеру новый div:
var myDiv = Element.extend(document.createElement('DIV'));
Коля Дубр: Да, кстати, к вопросу об ИЕ +)
У него еще есть очень серьезная бага, напрямую не связанная с Ajax, но которая тоже портит жизнь. В ИЕ нет доступа к прототипам объектов DOM, т.е. нет возможности расширить функциональность DOM. Когда много узлов нужно обновлять динамически, это очень очень грустно =(
А в чем проблема? В той же prototype.js перегружаются многие встроенные классы (Number, Array, String) и объекты DOM, document в частности. Кстати очень даже нужными функциями перегружаются (такая вот реклама :) ). И работает это все и в ИЕ, и в ФФ, и в Опере, а еще в Сафари, в КХТМЛ. Вообще стоит почитать код для общего развития.
Использую AJAX на сайте в подписи, но это опять же сервис.
Вообще если нужна интерактивность, общение с пользователем, то яваскрипт очень даже не повредит, а если просто публикация контента, то и яваскрипт незачем.
Еще есть ну очень хорошая библиотека prototype.js http://prototype.conio.net/ , в которой в частности есть объект Ajax.
Спор пошел только о двух технологиях: Смарти и XSLT. Но спор не конструктивный, так как те кто хорошо знают Смарти плохо или вообще не знают XSLT, и наоборот, в результате у каждого своя технология самая лучшая. К сожалению я не смогу внести конструктивности в этот спор, т.к. не знаю XSLT (хотя разумеется охота изучить, но руки не доходят). Остается надеятся, что придет кто-то, кто хорошо разбирается в обеих технологиях и выскажет свою точку зрения.
Вот эта конструкция возвращает ссылку на элемент HTML:
document.getElementsByTagName('HTML')[0]
Соответственно можно взять свойство innerHTML. Если нужно вместе с тэгами <html>, то можно взять outerHTML, но это свойство не поддерживает FF. Если принципиально именно вместе с ними, то можно подумать как и в FF их захватить. Следует также помнить, что все это дело вернет код сформированный на данный момент, т.е. если запустить его в самом начале страницы, то скорее всего элемента body в коде вообще не будет.
The Look: Есть предположение, что сайт находится на 2431 месте
К чему такая точность? ИМХО это можно приравнять к тому, что сайт отсутствует в выдаче. Да и яндекс на таких местах будет разные позиции каждый раз выдавать, если вообще будет, вчера по нескольким конкурентным запросам стабильно 90 результатов выдавал.
gofman: самый лучший шаблонизатор - это вставки в html коде <?=$str;?>
Это не шаблонизатор, а "хтмл-файлы с php-вставками". А если серьезно, то если ваше приложение допускает такие "шаблоны", то шаблонизатор вам просто напросто не нужен.
Согласен, но на сегодня под Аяксом (AJAX) понимается возможность обновления данных страницы, без её перезагрузки.
Сегодня под аяксом понимается все что угодно, что связано с ЯваСкрипт.
А почему никто не упомянул об Subsys_JsHttpRequest,
Здесь есть несколько недостатков. Первый (от которого можно избавиться) - объектная модель страницы засоряется элементами <script>, причем довольно-таки быстро. Второй (который нельзя обойти) - это то, что сервер должен генерировать ответ в виде скрипта, что как минимум не приятно. Поэтому лично я, где можно использовать XMLHttpRequest, использую его. В остальных случаях конечно script.
mymind, как писалось выше проблема - кроссброузерность.
Поэтому затраты на подгонку пока нерентабельны.
Если уж быть абсолютно честным, то не такие уж большие затраты. Один раз на грабли наступил, в следующий раз обходишь. А граблей не так уж много.
Навернут идиотизма - сиди потом с каждой дурью разбирайся
Ну это вы конечно погорячились. Да и не заставляет ведь никто.
Самое смешное, что есть куча юзеров, которые вообще яву у себя выключают.
А и наплевать на них, попадаются еще такие, которые напишут свой браузер и сидят под ним из принципа, так что ж теперь из кожи вон лезть, чтоб у них страничка нормально показывалась?
Предлагаю додумать, как бы выглядел этот пример с использованием глоб. функций. Мысль ясна?
Ага. Но решение все же имеется. Лезем во все тот же prototype и смотрим на объект Element.Methods. Все его методы первым аргументом принимают ссылку на элемент. Следовательно использовать можно так:
Element.hide($('myDiv'));Далее смотрим на метод Element.extend и понимаем что можно и так:
Element.extend($('myDiv'));
$('myDiv').hide()
Это конечно вызов лишней функции, но зато работает во всех браузерах, да и не сильно это увеличивает код, создаем мы к примеру новый div:
var myDiv = Element.extend(document.createElement('DIV'));Мысль ясна? ;)
Да, кстати, к вопросу об ИЕ +)
У него еще есть очень серьезная бага, напрямую не связанная с Ajax, но которая тоже портит жизнь. В ИЕ нет доступа к прототипам объектов DOM, т.е. нет возможности расширить функциональность DOM. Когда много узлов нужно обновлять динамически, это очень очень грустно =(
А в чем проблема? В той же prototype.js перегружаются многие встроенные классы (Number, Array, String) и объекты DOM, document в частности. Кстати очень даже нужными функциями перегружаются (такая вот реклама :) ). И работает это все и в ИЕ, и в ФФ, и в Опере, а еще в Сафари, в КХТМЛ. Вообще стоит почитать код для общего развития.
Использую AJAX на сайте в подписи, но это опять же сервис.
Вообще если нужна интерактивность, общение с пользователем, то яваскрипт очень даже не повредит, а если просто публикация контента, то и яваскрипт незачем.
Еще есть ну очень хорошая библиотека prototype.js http://prototype.conio.net/ , в которой в частности есть объект Ajax.
Неполная справка по библиотеке на русском языке http://kropp.spb.ru/docs/prototype/
Более полная (почти полная) на английском http://www.sergiopereira.com/articles/prototype.js.html
Щас пишу свою справку по всему этому делу, может когда-нибудь выложу.
http://www.webalta.ru/search?q=%F0%E...EA%E8%E5%E2%E5
А так http://www.webalta.ru/search?q=%F0%E0%E1%EE%F2%E0+%E2+%FF%F0%EE%F1%EB%E0%E2%EB%E5 ? (работа в ярославле). Че то вообще почти все не по теме.
Спор пошел только о двух технологиях: Смарти и XSLT. Но спор не конструктивный, так как те кто хорошо знают Смарти плохо или вообще не знают XSLT, и наоборот, в результате у каждого своя технология самая лучшая. К сожалению я не смогу внести конструктивности в этот спор, т.к. не знаю XSLT (хотя разумеется охота изучить, но руки не доходят). Остается надеятся, что придет кто-то, кто хорошо разбирается в обеих технологиях и выскажет свою точку зрения.
Вот эта конструкция возвращает ссылку на элемент HTML:
document.getElementsByTagName('HTML')[0]Соответственно можно взять свойство innerHTML. Если нужно вместе с тэгами <html>, то можно взять outerHTML, но это свойство не поддерживает FF. Если принципиально именно вместе с ними, то можно подумать как и в FF их захватить. Следует также помнить, что все это дело вернет код сформированный на данный момент, т.е. если запустить его в самом начале страницы, то скорее всего элемента body в коде вообще не будет.
Есть предположение, что сайт находится на 2431 месте
К чему такая точность? ИМХО это можно приравнять к тому, что сайт отсутствует в выдаче. Да и яндекс на таких местах будет разные позиции каждый раз выдавать, если вообще будет, вчера по нескольким конкурентным запросам стабильно 90 результатов выдавал.
Раньше к адресу сайта добавлялась * и показывалось количество ссылок по запросу на весь сайт.
Действительно, про * забыл. Исправлено.
самый лучший шаблонизатор - это вставки в html коде <?=$str;?>
Это не шаблонизатор, а "хтмл-файлы с php-вставками". А если серьезно, то если ваше приложение допускает такие "шаблоны", то шаблонизатор вам просто напросто не нужен.