![]() |
ATS - движок для сайта на javascript =)
писал из спортивного интереса, но очень хочу найти и исправить все косяки, чтобы можно было использовать, поэтому выкладываю чтобы потестили.
онлайн-версия здесь: http://litprom.890m.com/ast/ сорцы здесь: http://up.giga.su/738058803/ (6.35 кб) Назначение: создание в максимально сжатые сроки статичного сайта с удобной поддержкой и расширением. Альтернатива серверным модульным движкам, SSI, dreamweaver templates. Суть проекта: На страницу цепляется основной скрипт. Появляется возможность создавать простые ссылки, которые заполняют контент страницы содержимым файлов, лежащих на сервере в текстовом формате. |
я вот че думаю - можно сделать кэширование текстов - сохраняя их в переменные, а затем проверяя их наличие.
как вы считаете - стоит? |
Цитата:
http://forum.antichat.ru/thread72316.html |
Цитата:
|
1, 2 - сделал
Цитата:
если у меня будет меню из одних спанов, без онклика и вызова функции, как я тогда укажу - какой пункт меню, какую страницу открывает? 4 - буду учиться работать с массивами и тоже реализую 5 - ясно. может попробую вот эти способы: http://forum.antichat.ru/thread72316.html а ты можешь привести доводы, почему кешировать не стоит? ПС я знаю что corpse - 'труп'. это мой маленький кулинарный изыск :) |
Цитата:
lazy-реализация первого пункта. Несколько объёмно: Код:
function XHR()Цитата:
Вот пример, не затрагивающий уже существующую разметку: Код:
function init()P.S. для IE - attachEvent вместо addEventListener. |
почти со всем справился, но вот этот код не отменяет перехода по ссылке ни в одном браузере:
Цитата:
как в ИЕ убить переход? я повесил обработчик на теги A. |
Цитата:
Код:
if(e.preventDefault) |
http://up.giga.su/713746505/
вот сорцы ИЕ на этот код ваще не реагирует |
В IE события, вопреки стандарту, называются не 'click' или 'keyup', а 'onclick', 'onkeyup' и т.д.
В результате: Код:
attachEvent('onclick', function(e){/*...*/});Далее. Функция attachEvent переписывает нативную в IE функцию window.attachEvent. Это не плохо, но нежелательно. Код:
try {window.xmlHttp=new XMLHttpRequest();} |
Как вариант для attachEvent и addEventListener:
Код:
<a id=aid href=#>Click me!</a> |
astrologer
событие исправил на onclick, спасибо третий параметр уже убрал аттачевент уже переименовал ща имеем такой код: PHP код:
PHP код:
может проблема в том, что всё вынесено в отдельный скрипт? ПС Цитата:
|
вот снова залил сорцы (6 кб)
http://up.giga.su/643686467/ я там создал функцию тест. она по сути дублирует функцию loadPage. вот что она должна делать: - создать пустой див (ок) - очистить контейнер, куда будет помещаться контент новой страницы (ок) - аяксом подгрузить новый контент - приаттачить его к контейнеру если закоментить вызов моей самописной аякс-функции - то ссылки как и должно быть - не совершают перехода. они чистят страницу, создают див, и отменяют переход по ссылке. теперь осталось получить новые данные. если раскомментировать строку - то ИЕ просто перейдёт по ссылке на текстовый файл. т.е. функция перестаёт работать. Тем не менее в функции init() есть строки загружающие страницу по умолчанию. они также используют loadPage(), ajax(), но у них всё работает нормально. если поставить алерты - то видно, что аякс получает тело страницы. в случае же с тест-функцией, которую я прилепил в качестве обработчика исключительно для ИЕ - аякс ниче не возвращает и до отмены перехода по ссылке видно вообще дело не доходит.. добьём эту шнягу! чуток осталось :) я вот тут ещё писал: http://forum.ixbt.com/topic.cgi?id=26:38394 но там не особо почерпнул пока |
Для начала:
Код:
function(msg){ alert(msg) } // это то же самое, что и просто alertКод:
// ajaxTest("GET", e.srcElement.valueOf(), function(msg){ alert(msg) });Код:
if(e.srcElement.href) ajax("GET", e.srcElement.href, alert);А теперь немного уличной магии. В коде функции ajax: Код:
function ajax(method, url, userFunc) {P.S. Все рекомендации основаны на следующем правиле: переписывать код полностью нельзя. |
А может туда какую-нить маленькую админку добавить стоит?!Руками конечно не впадлу, но тем не менее))
|
ур-ра-а!!
вот где оказываеца была зарыта эта побитая дождями сцобака! теперь везде работает стабильно. astrologer жму руку! спасибо Цитата:
asser какую админку? чтобы изменять меню? для этого нужны скрипты на сервере. а это уже совершенно другая история.. |
Так. осталось выяснить, чем неугоден следующий код?
PHP код:
|
| Время: 23:45 |