Рубрика «ajax» - 12

I. Суть проблемы.

В список основных предназначений XMLHttpRequest, конечно, не входит запрос HTML, чаще этот инструмент взаимодействует с XML, JSON или простым текстом.

Однако связка XMLHttpRequest + HTML хорошо работает при создании расширений к браузеру, которые в фоновом режиме опрашивают на предмет новостей сайты, не предоставляющие для этого почтовую подписку, RSS или другие экономные API или предоставляющие эти сервисы с какими-то ограничениями.

При создании нескольких расширений для Firefox я сталкивался с такой необходимостью. Работать с полученным от XMLHttpRequest кодом HTML при помощи регулярных расширений — способ очень ненадёжный и громоздкий. Получить DOM от XMLHttpRequest можно было лишь для правильного XML. Поэтому приходилось следовать хитрым советам на сайте разработчиков. Однако начиная с Firefox 11 появилась возможность непосредственного получения DOM от XMLHttpRequest, а в Firefox 12 была добавлена обработка таймаутов.

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

Поэтому я попытался убрать из кода своих расширений все прежние костыли и ввести туда новый удобный парсинг. Однако при работе с сайтом rutracker.org возникла странная проблема (тестирование проходит на последней ночной сборке под Windows XP; очень прошу прощения за все косяки в коде и формулировках: у меня нет программистского образования и опыт мой в этой сфере, к сожалению, очень невелик.).

Читать полностью »

Доброго времени, дорогие читатели!
Хотелось бы поделиться небольшим кусочком кода, который позволяет подгружать файлы JavaScript динамически.
Читать полностью »

в 9:17, , рубрики: ajax, cms, Joomla, метки: ,

В статье рассмотрены вопросы использования AJAX в компонентах, модулях и плагинах Joomla.Читать полностью »

Совсем недавно у меня появилась задача защитить web-приложение полностью построенное на ajax от CSRF-атак.

Каков же механизм такой атаки? Суть заключается в выполнении запроса с другого сайта под авторизационными данными пользователя. Например, у нас есть действие удаления своего аккаунта example.com/login/dropme. Если защиты от CSRF атаки нет, мы можем на нужном нам сайте разместить тег:

<img src="http://example.com/login/dropme">

Сразу после того как пользователь зайдет на приготовленную нами страницу и подгрузит содержимое img, его аккаунт на example.com будет удален. О защите от этого я расскажу под катом.

Читать полностью »

Рады сообщить, что улучшения индексации AJAX-сайтов Яндекс поддержал изменения в поисковом роботе и правилах обработки им URL таких сайтов.

Технология AJAX пользуется большой популярностью. Однако то, как содержимое страницы «видит» браузер и пользователь, отличается от того, как страницу «видит» робот поисковой системы. Например, пользователь видит удобный интерфейс с динамически подгружаемыми страницами, в то время как содержимое той же страницы для поискового робота может быть пустым или представленным в виде остального статического HTML-контента страницы, для генерации которого не используются скрипты.

При создании AJAX-сайтов могут использоваться URL с #, но такой URL не используется поисковым роботом. Как правило, часть URL после # отсекается. Поэтому вместо URL вида site.ru/#example он обращается к главной странице сайта, расположенной по адресу site.ru. Это значит, что контент страницы может не проиндексироваться и, как следствие, не попасть в результаты поиска.

Теперь вебмастер AJAX-сайта может указать поисковому роботу Яндекса на необходимость индексации, поддержав соответствующую схему в структуре сайта. Для этого нужно:

Читать полностью »

Вступление

Javascript BMP ParserЕще с появления скриптов для отображения PDF, извлечения информации с MP3 и декодировки H.264 меня очень заинтересовала тема чтения и работы с бинарными данными в JavaScript.

В этом посте хотелось бы рассказать про свои эксперименты и рассмотреть эти возможности на примере «ручного» парсинга и отображения BMP-файлов (а заодно и освежить память о школьных временах работы с BMP на Паскале :) ).

Сразу хочу предупредить, что речь будет идти именно о написании JavaScript самостоятельно, а не его генерации с исходных кодов других языков с помощью какого-либо транслятора типа Emscripten.Читать полностью »

Кармавьюер как слабо связанный модуль к HabrAjaxМодуль — это независимый плагин, который может работать без основного скрипта. История данного Кармавьюера начинается с 23 марта 2010 — автор Atilla написал скрипт показа кармы по наведению мыши на имя пользователя. К этому времени существовали другие 2-3 реализации показа кармы и одна — даже с изменением без захода на страницу. Идея быстрого и лёгкого просмотра кармы и рейтинга с использованием сайтового API показалась интересной и быстро была развита до поддержки всех браузеров. После разрушительной смены дизайна и вёрсток страниц в октябре 2011 все кармавьюеры и многие другие скрипты вымерли, как динозавры. Необходимости в кармавьюере не было, потому что скрипт HabrAjax и его предок умели показывать персональную страницу пользователя в фрейме половинной высоты. Загружается дольше, но и содержит больше информации. Реанимирование скрипта показа кармы было отложено на далёкий срок начала интеграции разных скриптов под управлением одного общего. Такое время пришло. Появились скрипты-модули, которые могут работать как независимо, так и интегрироваться с общим. Скачать кармавьюер.
Читать полностью »

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

Плагин позволяет передавать команды манипуляции ДОМом в одном объекте, то есть заменить много вызовов методов одним вызовом функции.

Использование

$.executeObject({"#my_div": ["text", "новый текст"]})   // можно передать объект
$.executeObject('{"#my_div": ["text", "новый текст"]}') // а можно и JSON

Читать полностью »

Для написания программ, выполняющих параллельные вычисления, широко применяются потоки (threads). При том, что потоки позволяют достаточно гибко организовывать парраллелизм в программах, они обладают рядом недостатков.Дело в том, что потоки разделяют между собой память. Это значит, что очень легко по неосторожности нарушить целостность программы. Побороть это можно с помощью блокировок, которые позволяют некоторому коду получать эксклюзивный доступ к обшему ресурсу. Однако, сами блокировки, помимо того, что их нужно не забывать проставлять, порождают в свою очередь проблемы. Одна из самых страшных проблем — это возможность породить deadlock. Впрочем, даже без этого написание действительно хорошо работающей многопоточной программы превращается в ювелирный труд.

Но у потоков есть альтернативы. Из известных мне — модель акторов (actors) и software transaction memory. Героем этой статьи, как понятно из заголовка, являются первые. Впрочем, по STM есть достаточно много статей в интернете, которые удовлетворят ваше любопытство.

Читать полностью »

Вкладка «Всё» от 23 апреля — просмотр вопросов и ответов без перезагрузки страницОбновление. Как известно, раньше потоки статей и вопросов-ответов существовали раздельно, а теперь авторизованные пользователи могут использовать вкладку «Всё» для просмотра смеси заголовков тех и других потоков. С юзерскриптом HabrAjax новой версии 0.85, от 25 апреля возможно смотреть не только заголовки, но и содержание без перезагрузки страниц. Достаточно кликнуть по заголовку или по кнопке ответов. Просмотрев статью, вопрос или комментарии к ним, по широкой кнопке «Свернуть» сворачиваем просмотренное.

Необходимые переделки затронули и ZenComment — юзерстили для Хабра.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js