Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> получить любую информацию с другого узла, узнать, загружена ли норм. страница. 
V
    Опции темы
Alx
Дата 13.3.2006, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



12345c,
да мне пофиг какой браузер))))
мне надо просто "пропинговать" УРЛы, чтобы узнать какие из низ валидны, а какие - нет, чтобы в ручную ихисправить.


Цитата(12345c @ 13.3.2006, 00:12 Найти цитируемый пост)
Если по XMLHttpRequest

но это же опять идет использование php.
просто я не хочу пользоваться сокетами и все такое. это слишком муторно.

где-то тут видел что-то вроде

Код

file_get_contents("http://site.ru/page.html");

разве эта функция работает для страниц на другом сервере?

Это сообщение отредактировал(а) Alx - 13.3.2006, 13:26


--------------------
PM MAIL WWW ICQ   Вверх
12345c
Дата 13.3.2006, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Цитата(Alx @ 13.3.2006, 13:25 Найти цитируемый пост)
Если по XMLHttpRequest

но это же опять идет использование php.

Нет, грузишь сразу проверяемый УРЛ в объект XMLHttp и смотришь состояние.
PM WWW   Вверх
Alx
Дата 13.3.2006, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



12345c,
сорри, но см. первый пост...


--------------------
PM MAIL WWW ICQ   Вверх
12345c
Дата 13.3.2006, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Т.е. 404-я ошибка не выдаётся? Я бы попробовал извлечь что-то по XMLHttpRequest на клиенте, заранее сказать трудно.

Через прокси на сервере, конечно, будет работать, контент проанализируется.

Это сообщение отредактировал(а) 12345c - 13.3.2006, 19:11
PM WWW   Вверх
Alx
Дата 13.3.2006, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



эх, лана, буду тра**ть сокеты)
всем пасиб)


--------------------
PM MAIL WWW ICQ   Вверх
S.A.P.
Дата 13.3.2006, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 8
Всего: 71



Можно попробовать сделать мегахитрую вещь ( smile)) ). На своем серваке настроть mod_rewrite на другой домен и от туда подкачивать данные XMLHttpRequest ом (который ссылаться будет уже на твой домен).
PM MAIL   Вверх
Aliance
Дата 13.3.2006, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Цитата(Alx @ 13.3.2006, 14:25 Найти цитируемый пост)
разве эта функция работает для страниц на другом сервере?

совершенно точно работает. я вместо сокетов ее использую
PM MAIL WWW ICQ Skype   Вверх
Alx
Дата 13.3.2006, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



Aliance,
ухт...
тогда, наверное, всё будет гораздо проще...)
спасибо большое!!)


--------------------
PM MAIL WWW ICQ   Вверх
12345c
Дата 13.3.2006, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



file_get_contents(), конечно, работает вместо сокетов, с одним условием. Сервер не должен стоять за прокси, иначе без сокетов не обойтись.
PM WWW   Вверх
Ciber SLasH
Дата 14.3.2006, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Цитата(Alx @ 13.3.2006, 13:25 Найти цитируемый пост)
да мне пофиг какой браузер))))

Если пофиг какой браузер, то можно таким методом для IE сделать (остальные браузеры, как оказалось ни так, ни через IFRAME не позволяют к чужим доменам обращаться):
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content='text/html; charset=windows-1251'>
<meta name="Generator" content='EditPlus 2.21.330'>
<meta name="Author" content='Ciber SLasH'>
<title>JavaScript :: Проверка ссылок [XmlHttpRequest] (IE only)</title>
<script type='text/javascript'>
var XmlHttp;

/*** Инициализация XmlHttpRequest-а ***/
function init() {
var is_IE = false;
    if (window.XMLHttpRequest) {        // Mozilla
        try {
            XmlHttp = new XMLHttpRequest();
        } catch (e) {
            XmlHttp = false;
        }
    } else if (window.ActiveXObject) {    // IE
        try {
            XmlHttp = new ActiveXObject("Msxml2.XMLHTTP.4.0");
        } catch (e) {
            try {
                XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {
                    XmlHttp = false;
                }
            }
        }
        is_IE = true;
    }
    if (XmlHttp) {
        if (is_IE) XmlHttp.onreadystatechange = parseRequest;
        else XmlHttp.onload = parseRequest;
        return true;
    } else return false;
}
/*** Обработка ответа ***/
function parseRequest() {
    if (XmlHttp.readyState == 4) {
        if (XmlHttp.status == 404) {
            badLinks[index] = 1;
        } else {
            badLinks[index] = 0;
        }
        index++;
        if (index < testLinks.length) {
            sendQuery(testHost + testLinks[index]);
        } else {
            alert(badLinks);
        }
    }
}
/*** Отправка запроса ***/
function sendQuery(url) {
    XmlHttp.open('GET', url, true);
    XmlHttp.send(null);
}
testHost = "http://newmail.ru/";
testLinks = ["1.zip", "index.html"];
badLinks = [];
index = 0;

onload = function () {
    if (init()) {
        sendQuery(testHost + testLinks[index]);
    }
}
</script>
</head>

<body>
</body>
</html>


Это сообщение отредактировал(а) Ciber SLasH - 14.3.2006, 12:40
PM   Вверх
Aliance
Дата 26.3.2006, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Вот нашел еще:
Код

   xmlhttp.open("HEAD", "/faq/index.html",true);
   xmlhttp.onreadystatechange = function() {
   if (xmlhttp.readyState==4) {
      if (xmlhttp.status==200) {
         alert("URL существует!");
      } else if (xmlhttp.status==404) {
         alert("URL не существует!");
      } else {
         alert("Статус: "+xmlhttp.status);
      }
   }

   xmlhttp.send(null);


PM MAIL WWW ICQ Skype   Вверх
Alx
Дата 1.4.2006, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



рибята!!!
спасибо всем, но вот эта страница не существует!!! а ошибку 404 не возвращает!


--------------------
PM MAIL WWW ICQ   Вверх
S.A.P.
Дата 1.4.2006, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 8
Всего: 71



Alx, разумеется не возвращает smile . file_get_contents никоим образом не работает с заголовками. Для того, чтобы их получить используй fsockopen или получай страницу через mod_rewrite (читай мой, очередной раз проигнорированный, последний пост).
PM MAIL   Вверх
Alx
Дата 1.4.2006, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



S.A.P., smile
я всё понимаю) мне наоборот нужно было именно народовскую страницу "простукивать"!
поэтому file_get_contents() подходит, а просто реквест и проверка на загрузку документа - нет!!
(см. первый пост)


--------------------
PM MAIL WWW ICQ   Вверх
S.A.P.
Дата 1.4.2006, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 8
Всего: 71



Alx, еще раз smile .

У нас есть сервер A, к которому мы имеем прямой доступ. Где - то там есть сервер B. На сераере B есть некоторые страницы, список которых у нас имеецца.

Задача: определить, запросы на какие страницы вернут 404 Not found и на какие 200 OK. Я правильно понял? smile

Если да, то сам контент запрашиваемых страниц нас не интересует (поэтому file_get_contents тут не к месту). А интересуют нас заголовки, которые вернутся с сервера B в ответ на HEAD запрос.

Решение:
1. На сервере, при помощи fsockopen и fwrite составлять HEAD запросы к твоему узлу по каждому URL из списка и читать заголовки, которые возвращаются.
2. Либо на сервере установить mod_rewrite с сервера A на сервер B, что нам позволит общаться HEAD запросами с сервером B из Java скрипта.
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1013 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.