Счетчик запросов

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

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

Бэк-энд эмулирующий долгий запрос.


$time = rand(3, 7);
sleep($time);
echo json_encode(array("status"=>"ok", "time"=>$time));

Фронт-энд


jQuery(function ($) {

	var ajax = [],
		$loader = $("#loader");

	$(document)
		.ajaxSend(function (event, XMLHttpRequest) {
			ajax.push(XMLHttpRequest);
			$loader.find("span").text(ajax.length);
			$loader.show();
		})
		.ajaxComplete(function (event, XMLHttpRequest) {
			var index = ajax.indexOf(XMLHttpRequest);
			ajax.splice(index, 1);
			$loader.find("span").text(ajax.length);
			if (ajax.length == 0) {
				$loader.hide();
			}
		});

	$("#click").click(function () {
		$.ajax({
			url: "/content/php/examples/ajax_rand.php",
			dataType: "json",
			success: function (data) {
				$("#logger").append("
time elapsed : " + data.time + "
"); } }); }); });

Результат