Ru-Board.club
← Вернуться в раздел «Web-программирование»

» AJAX

Автор: Qwezar
Дата сообщения: 14.03.2008 14:47

Код:
var httpRequest = createHttpRequest();

function createHttpRequest() {
var httpRequest;
var browser = navigator.appName;

if (browser == "Microsoft Internet Explorer") {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} else {
httpRequest = new XMLHttpRequest();
}

return httpRequest;
}

function process(n) {
name = document.getElementById(n).value;
    document.getElementById('divMessage').innerHTML = "<img src='images/upload.gif'>";
    httpRequest.onreadystatechange = getRequest;
    httpRequest.open("POST", "quickstart.php");
    httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=windows-1251');
    httpRequest.send("id=" + name);
}

function getRequest() {

if (httpRequest.readyState == 4) {
document.getElementById('divMessage').innerHTML = httpRequest.responseText;
}

}
Автор: UncoNNecteD
Дата сообщения: 14.03.2008 23:35

Цитата:
AJAX... есть ли будущее

оно наступило!
Автор: Cheery
Дата сообщения: 15.03.2008 00:10
UncoNNecteD
А если без флейма?
Автор: kimanenok
Дата сообщения: 19.03.2008 10:15
ajax - это хорошо...
меня лично напрягает, когда страница перегружается вся, когда нужно обновить маленький блочок, или когда табы на странице грузятся в дивы (все сразу) а потом показываются без обновления (все равно я это уже скачал... а если трафика жалко?).
Автор: Mira
Дата сообщения: 19.03.2008 11:19

Цитата:
ajax - это хорошо...
меня лично напрягает, когда страница перегружается вся, когда нужно обновить маленький блочок, или когда табы на странице грузятся в дивы (все сразу) а потом показываются без обновления (все равно я это уже скачал... а если трафика жалко?).

а вы посмотрите на это со стороны статистики
Автор: JamesMcAlt
Дата сообщения: 06.05.2008 13:19
Подскажите как можно брать rss ленты с других сайтов и выводить информацию динамически на своем? С обновлениями на лету.
Автор: Cheery
Дата сообщения: 06.05.2008 17:41
JamesMcAlt

Цитата:
Подскажите как можно брать rss ленты с других сайтов и выводить информацию динамически на своем?

добавить скрипт на сайт, который будет забирать эти ленты и выдавать как с того же домена, с которого и бегает js скрипт с ajax
Автор: pingvin1
Дата сообщения: 17.06.2008 17:59

Цитата:
Дело в том, что эта технология действительна работает и работает как надо, пример можете видеть на www.gmail.com

Интересно, ни в google.com, ни в gmail.com нет файлов XML , хотя без данных файлов невозможна технология ALAX ?
Автор: Cheery
Дата сообщения: 17.06.2008 18:43
pingvin1

Цитата:
Интересно, ни в google.com, ни в gmail.com нет файлов XML , хотя без данных файлов невозможна

перечитайте еще раз и не один раз.
не нужны xml файлы.. вообще
отдаваемые данные могут генериться и скриптом и необязательно в xml формате
Автор: pingvin1
Дата сообщения: 19.06.2008 15:25
Исходя из аббревиатуры любой AJAX должен содержать XML код, если этого кода нет, то это уже не AJAX. А любая программа XML имеет расширение xml. Если я не прав, то подскажите.
Автор: vu1tur
Дата сообщения: 19.06.2008 15:56
pingvin1
AJAX — это технология. Данные не обязаны отдаваться в XML виде.

Цитата:
Data is retrieved using the XMLHttpRequest object that is available to scripting languages run in modern browsers, or, alternatively, through the use of Remote Scripting in browsers that do not support XMLHttpRequest. In any case, it is not required that the asynchronous content be formatted in XML.
ajax @ wikipedia
Автор: andead
Дата сообщения: 19.06.2008 19:02

Цитата:
А любая программа XML имеет расширение xml

xml это не программа а язык разметки, расширение может быть любым, вообще в вебе расширения мало что значат (для клиента)
Автор: TankMan
Дата сообщения: 22.06.2008 22:26
XMLHTTPRequest вместо русских букв возвращаются кубики!

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

[more]function createRequestObject() {
var request = null;
try {
request=new ActiveXObject('Msxml2.XMLHTTP');
} catch (e){}
if(!request) try {
request=new ActiveXObject('Microsoft.XMLHTTP');
} catch (e){}
if(!request) try {
request=new XMLHttpRequest();
} catch (e){}
return request;
}

function serverRedirect(redirect,referer, callback) {
var request = createRequestObject();
if(!request) return false;
request.onreadystatechange = function() {
if(request.readyState == 4 && callback) callback(request);
};

request.open('GET', redirect, true);
request.setRequestHeader("Content-type","content='text/plain; charset=UTF-8'");
request.setRequestHeader("Referer",referer);
request.setRequestHeader("Location",referer);
try
{
request.send(redirect); //urlEncodeData(data)
return true;
} catch (e)
{
return 0;
}
}

serverRedirect("http://www.astrolive.ru/daily/today/general/cancer.html","mfd.ru",GetDollar);

function GetDollar (request)
{
var z = request.responseText; //<< - вот здесь текст не правильный не пойму почему?
//и т.д.....
}
[/more]
Единственное, думается мне что он возвращается в Unicode а как это объяснить браузеру при запросе? поскажите пожалуйста.
Автор: Cheery
Дата сообщения: 22.06.2008 22:48
TankMan

Цитата:
Единственное что я нашел в этой теме, так это то что возвращаемая кодировка для IE должна быть в UTF-8.. исправил хеадер запроса - ничего не поменялось

при чем тут хедер? а текст кто будет преобразовывать в UTF-8?


Цитата:
Единственное, думается мне что он возвращается в Unicode а как это объяснить браузеру при запросе? поскажите пожалуйста.

еще раз - возвращаемый текст должен быть в уникоде.
Автор: TankMan
Дата сообщения: 22.06.2008 23:23
...Cheery
в этой теме я видел только способ перекодировки с помощью PHP, а у меня нет возможности использовать PHP... а как быть с unicod-ом? Подскажите уж пожалуйста, я не понимаю на что вы намекаете я не знаю как это сделать...
Автор: Cheery
Дата сообщения: 22.06.2008 23:27
TankMan

Цитата:
а как быть с unicod-ом? Подскажите уж пожалуйста, я не понимаю на что вы намекаете я не знаю как это сделать...

при чем тут намеки? разницу между request и response понимаем?
то, что вы заголовок поменяли - это запрос/request к серверу, а не его ответ.

ответ формируется на сервере и вот он должен приходить в уникоде. неважно - генерится ли он скриптом или просто лежит на сервере как файл.. не будет текст ответа в уникоде - будут проблемы с русским языком по крайней мере в IE


Цитата:
а у меня нет возможности использовать PHP..

что создает ответ от сервера в случае ajax запроса?
Автор: TankMan
Дата сообщения: 22.06.2008 23:37
А я с чужого сайта беру данные, я и не знаю что ж его там генерирует.
Я просто пытаюсь получить в ответ html страничку и забрать с нее информацию...

Может есть другой способ?
Автор: Cheery
Дата сообщения: 22.06.2008 23:41
TankMan

Цитата:
А я с чужого сайта беру данные, я и не знаю что ж его там генерирует.

как вам и сказали - с чужого сайта вы вообще не можете с помощью ajax забирать данные.
только с того же, на котором находится страница с ajax
Автор: TankMan
Дата сообщения: 23.06.2008 00:19
А вот вы запустите мой скрипт, я забираю информацию с сайта о текущей погоде, забираю информацию с другого сервера о погоде на несколько дней - причем с разных, забираю информацию с сайта rbk.ru о курсах валют , а тут вдруг с гороскопами у меня ничего не выйдет? Я с помощью этих запросов логинюсь на чужем сайте и забираю информацию отправляя POST запрос но вот с русским - у меня проблема

Попробуйте запустить мой скрипт только путь отправки запроса поставьте на http://propogodu.ru/city/1767/
Мне ответ на русском приходит. и прям то что мне нужно. ведь конвертация должна быть какая-то или ее нет в распоряжении JS?

Добавлено:
Я так понимаю, мне ответ приходит какраз НЕ в Unicode - это то и не нравится IE, а вот сайт http://propogodu.ru/city/1767/ возвращает в Unicode... так?
Автор: Cheery
Дата сообщения: 23.06.2008 00:31
TankMan

Цитата:
Мне ответ на русском приходит. и прям то что мне нужно. ведь конвертация должна быть какая-то или ее нет в распоряжении JS?

нет, значит сайт выдает текст уже в уникоде.


Цитата:
А вот вы запустите мой скрипт, я забираю информацию с сайта о текущей погоде, забираю информацию с другого сервера о погоде на несколько дней - причем с разных, забираю информацию с сайта rbk.ru о курсах валют , а тут вдруг с гороскопами у меня ничего не выйдет?

ЭТО будет работать только при пониженных настройках безопасности в браузере.
по умолчанию - не должно
как примеру
FF:

Цитата:
Access to restricted URI denied" code: "1012
http://localhost/page2.htm
Line 10

IE:

под оперой он вообще не работает
Автор: Ternik
Дата сообщения: 23.06.2008 06:03
Cheery
ну собственно к этому же и пришли...
Автор: Cheery
Дата сообщения: 23.06.2008 17:20
Ternik

Цитата:
ну собственно к этому же и пришли.

не совсем - IE после подтверждения запрос все же делает
Автор: TankMan
Дата сообщения: 23.06.2008 21:49
Cheery
И тем неменее, запрос создается - ответ приходит. Вот подскажите, есть ли реальная возможность, этот ответ, который приходит мне НЕ в юникоде, каким-то образом перевести в юникод? или в этом виде его как-то обработать? может скрипт какой написать?
В принципе, я беру эту информацию для использования только на моем компьютере т.е. он мне и сервер и клиент моего скрипта - т.е. я смогу и PHP для обработки использовать, если это необходимо... может Flash для записи того что пришло в файл, а потом из флеша его же и открывать и конвертировать, или какие другие извращения? (если конечно другого источника информации не найду... )
Автор: Cheery
Дата сообщения: 23.06.2008 21:51
TankMan

Цитата:
И тем неменее, запрос создается - ответ приходит

и что? делаете только под посетителей с IE и низкими настройками безопасности? ваше дело..

Цитата:
каким-то образом перевести в юникод? или в этом виде его как-то обработать? может скрипт какой написать?

делаем запрос на свой PHP скрипт, который делает запрос к стороннему серверу, получает ответ, перекодирует его в уникод и возвращает как ответ на ajax запрос
Автор: TankMan
Дата сообщения: 23.06.2008 21:57

Цитата:
ЭТО будет работать только при пониженных настройках безопасности в браузере.

У меня вопрос не универсальности, у меня вопрос - как реализовать? Этим буду пользоваться только я... ну и кому интересно будет. Все остальное не принципиально...

Может есть какой другой способ запроса и получения содержания страницы? с указанного адреса?
Вообще, дело то как происходит? - Я делаю запрос - получаю ответ, потом создаю динамически "DIV" в его innerHTML кидаю ResponseText того что мне пришло. и в получившемся наполнении DIV-а ищу таблицу с необходимым мне содержанием... впринципе ничего сложного - самое сложное найти способ получить информацию на русском - любыми путями.
Автор: Cheery
Дата сообщения: 23.06.2008 22:03
TankMan

Цитата:
Может есть какой другой способ запроса и получения содержания страницы? с указанного адреса?

читайте выше.. этот способ будет работать во всех браузерах
Автор: Ternik
Дата сообщения: 24.06.2008 21:47
TankMan

Цитата:
у меня вопрос - как реализовать?

Server-Side scripting
Автор: pingvin1
Дата сообщения: 01.07.2008 13:16
Спасибо vu1tur, Cheery, andead.
Автор: TankMan
Дата сообщения: 06.08.2008 10:41
Cheery
Возвращаясь обратно к теме - сделал php скриптик, который делает запрос на нужный мне сервер, и возвращает его в UTF-8 - возращает абракадабру... Не могли бы подсказать?
[more=Вот непосредственно код php на моем хосте]
<?php
    header("Content-Type: text/html; carset=UTF-8");
    mb_http_output('UTF-8');
    ob_start('mb_output_handler');
    $ch = curl_init(); //$_REQUEST['u']
    curl_setopt($ch, CURLOPT_URL,"http://supercook.ru/zodiac/astr-08-01.html");
    curl_setopt($ch, CURLOPT_HEADER,0);
    //curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
    //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 10);
    //curl_setopt($ch, CURLOPT_TIMEOUT,15);
    $z = curl_exec($ch);
    //print($z);
    curl_close($ch);
?>[/more]
Вот непосредственно - ссылка http://sdushor-nvr.ru/index2.php ссылается он на
http://supercook.ru/zodiac/astr-08-01.html
Если я убираю строку mb_http_output('UTF-8');
На по адресу http://sdushor-nvr.ru/index2.php выдается все нормально, но вот скрипту который к нему обращается - возвращаются все те же абракадабры
Автор: andead
Дата сообщения: 06.08.2008 10:47
TankMan
страница http://supercook.ru/zodiac/astr-08-01.html приходит в кодировке windows-1251, у вас же используется utf-8, поэтому перед работой с ней её нада конвертировать:

$z = iconv('cp1251', 'utf-8', $z);
print($z);

Страницы: 1234567891011

Предыдущая тема: mod_rewrite: документация, готовые решения, вопросы


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.