Асинхронный пул на jQuery

Приведенный ниже скрипт имеет скорее теоретический нежели практический интерес.

Итак, постановка задачи:

  • Есть скрипт получения некоего набора данных (JSON).
  • Требуется на основе этого набора данных циклически вызывать асинхронный запрос, который выполняет действия на основе входных данных от первого скрипта.
  • При этом требуется лимитировать число одновременно запущенных асинхронных процессов (чтобы не порождать десятки или даже сотни запросов сразу).

Алгоритм решения:

  • Получить JSON с данными для последующей обработки.
  • Для каждого элемента в полученных данных:
  • — Если пул не заполнен – запустить асинхронный процесс.
  • — Если пул заполнен – ждать пока в пуле освободится слот.
  • По окончанию обработки данных очистить пул.

Проблема:

  • Если организовывать опрос пула циклически, съедается 100% одного ядра CPU, начинает дико тормозить интернет-обозреватель и в конце концов может аварийно завершить работу.

Как можно реализовать скрипт для данной задачи – смотрите ниже:

Continue reading

Тестирование в разных версиях IE на одной рабочей станции

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

Cистемная ошибка: -1072896658 (system error: -1072896658)

Отладка javascript-ов в IE обычно вызывает в сознании массу непечатных слов в адрес его разработчиков. Эта заметка посвящается тем, кто сталкивался с невразумительной ошибкой, выдаваемой Internet Explorer-ом при использовании Ajax с php-библиотекой xajax:

Ошибка: системная ошибка: -1072896658 или Error: system error: -1072896658
  Читать дальше