JavaScript или опция PHP обнаружить состояние AIM

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

Stopwatch sw = new Stopwatch();
sw.Start();
// Do Work
sw.Stop();

Console.WriteLine("Elapsed time: {0}", sw.Elapsed.TotalMilliseconds);

, С другой стороны, при необходимости в чем-то немного более сложном необходимо, вероятно, рассмотреть использование стороннего профилировщика такой как МУРАВЬИ .

6
задан ParoX 31 July 2009 в 15:31
поделиться

1 ответ

Чтобы не ждать дюжину секунд, когда что-то идет не так, вы можете установить еще пару параметров, например (см. curl_setopt ):

  • CURLOPT_CONNECTTIMEOUT : количество секунд ожидания при попытке подключения. Используйте 0, чтобы ждать бесконечно.
    • установки на пару секунд будет достаточно
  • CURLOPT_TIMEOUT : максимальное количество секунд, в течение которого функции cURL могут выполняться.
    • то же самое для этого
  • CURLOPT_DNS_CACHE_TIMEOUT : количество секунд, в течение которых записи DNS хранятся в памяти. По умолчанию для этого параметра установлено значение 120 (2 минуты).
    • Вы, вероятно, можете установить более высокое значение

Если пользователи вашего веб-сайта обычно остаются на нем более одной или двух страниц, может быть интересно сохранить эту информацию в $ _ SESSION , и получать его только время от времени.

Например, вы можете получить его, только если значение, хранящееся в сеансе, было получено более 5 минут назад. Вероятно, это сэкономило бы пару вызовов : -)


Еще один способ сделать это на стороне клиента:

  • получить изображение с тегом
  • в случае "онлайн" используйте изображение, которое загружается нормально.
    • подключить обработчик к « load » даже изображения, чтобы заменить его некоторым текстом
  • в случае «офлайн», используйте изображение, которое находится в 404
    • подключить обработчик к « error » даже изображения, чтобы заменить его некоторым текстом

Это не очень хорошо (это вроде «хакерский», неправильный способ), но он должен работать; -)

Ваше изображение будет таким:

<div id="arround-1">
    <img id="img-1" src="http://big.oscar.aol.com/imperialpalaces?on_url=http://www.ipalaces.org/support/widget/status_green.gif&amp;off_url=http://this.is-a-404-error.com"
        onload="replace_img_status(1, 1);"
        onerror="replace_img_status(1, 0);"
    />
</div>

Вы видите, что, если пользователь подключен, , наконец, приводит к существующему изображению; таким образом, будет запущено даже « load ».

И, если пользователь не подключен, , наконец, приведет к изображению, которое не ' t exist (выдает ошибку 404) ; поэтому будет запущено событие « error ».

Теперь вы должны позаботиться об этих двух случаях, примерно так:

<script type="text/javascript">
    var replace_img_status = function (num, status) {
        var div = document.getElementById('arround-' + num);
        if (div) {
            if (status == 1) {
                div.innerHTML = 'Online';
            } else {
                div.innerHTML = 'Offline';
            }
        }
    };
</script>

Если status равен ] 1 , мы отображаем "

4
ответ дан 17 December 2019 в 04:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: