При щелчке, перенаправление на другой URL, если сервер работает медленно? - PullRequest
0 голосов
/ 19 февраля 2011

Возможно ли (в javascript, ajax, других, например, на сайте клиента) перенаправить пользователя на другой URL, если первый URL не отвечает (когда он нажимает на ссылку)?

a href =URL1, но если через 1 секунду нет ответа от server1, перенаправление на URL2 (другой сервер)

Я думал о чем-то похожем на событие onclick: перенаправление на URL1, таймер, перенаправление на URL2, но если сервер 1 не отвечаеткод после не будет выполнен ...

Или затем использовать AJAX, но я не вижу, как

Дело;щелчок по странице (href = urltracking), перенаправление URL-отслеживания на URL2, но сервер URL-отслеживания может работать медленно ...

Ответы [ 5 ]

0 голосов
/ 19 февраля 2011

Платите больше денег за лучший сервер (ы) и в крайнем случае с балансировщиком нагрузки. Вам никогда не нужно делать что-то вроде этой клиентской стороны.

0 голосов
/ 19 февраля 2011

Я всегда стараюсь избегать ситуаций, когда сторонний сайт может замедлить мой собственный сайт.

Возможно, вместо этого вы можете сделать вызов в какой-то асинхронной форме?Пусть в событии DOM ready будет запущен фрагмент javascript, который вместо этого вызовет сервер отслеживания, что-то вроде (в jQuery):

$(function(){
    var tracker = new Image();
    tracker.src = "http://tracker.com/path/to/tracker
});

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

0 голосов
/ 19 февраля 2011

Оба эти сайта ваши? Может быть, вам стоит купить балансировщик нагрузки. По сути, это сервер, который отслеживает производительность двух веб-серверов и перенаправляет запросы на тот, который наименее занят.

0 голосов
/ 19 февраля 2011

Боюсь, это невозможно. Вы можете измерить время отклика путем «проверки тайм-аута» с помощью фиктивного вызова AJAX, если целевой URL находится в вашем домене. Что-то вроде «отправить тестовый GET, если сервер не отвечает в течение XX секунд, а затем переписать URL-адреса для резервных сайтов». Но он не подходит для общего пользования.

0 голосов
/ 19 февраля 2011

Вы можете использовать функцию setTimeout javascript.

setTimeout("function()",1000);

здесь в функции вам нужно написать код для перенаправления.

Также см. этот вопрос для полной справки.

Поправь меня, если я ошибаюсь.

...