Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Взаимодействие javascript и CGI

9.0K
13 декабря 2004 года
SunnyMoon
2 / / 13.12.2004
Могут ли общаться cgi-скрипт на сервере и javascript на стороне клиента?
То есть может ли javascript выполнить cgi-сценарий и получить ответ на него,
если сценарий, напрмер, знает что он общается с javascript. И делать это регулярно без перезагрузки документа.

Ведь можно же в теле документа можно написать
<SCRIPT language="JavaScript" src="../cgi-bin/jscgi_prog.cgi"></SCRIPT>
Тогда результат скрипта будет рассматриваться как javascipt-код. Но это только один раз при загрузке документа...

Но если нужно регулярно выполнять сценарии на сервере и получать от них ответы...

Некрасиво можно сделать так:

объявить iframe в теле документа с нулевой длинной и шириной.
Записывать в его src адреса нужных скриптов, перезагружать документ iframe.
Потом пусть сценарий дает пустой документ, но с объявленными javascript-объектами, в которых и
хранится информация. Тогда обратившить по иерархии можно достать информацию, полученную от сценария.

Но это как-то искуственно, не очень профессионально.
4
14 декабря 2004 года
mike
3.7K / / 01.10.2002
Цитата:
Originally posted by SunnyMoon
Но это как-то искуственно, не очень профессионально.



Но единственно возможно. Все современные чаты так работают.

4
14 декабря 2004 года
mike
3.7K / / 01.10.2002
Я ошибался:

Код:
function jb() {
    var A=null;
    try {
        A=new ActiveXObject("Msxml2.XMLHTTP")
        }
    catch(e) {
        try {
            A=new ActiveXObject("Microsoft.XMLHTTP")
            }
        catch(oc) {
            A=null
            }
        }
    if (!A && typeof XMLHttpRequest!="undefined") {
        A=new XMLHttpRequest()
        }
    return A
    }

function fc(Rb) {
    if (k && k.readyState!=0) {
        k.abort()
        }
    k=jb();
    if(k) {
        k.open("GET",sa+"&js=true&qu="+Rb,true);
        k.&#111;&#110;readystatechange=function() {
            if (k.readyState==4 && k.responseText) {
                var frameElement=B;
                if (k.responseText.charAt(0)=="<") {
                    W--
                    }
                else {eval(k.responseText)}
                }
            }
        k.send(null)
        }
    }

(c) Google
300
14 декабря 2004 года
ReDrum
689 / / 20.04.2000
Да прикольно они сделали ;)))

а по теме есть посмотри что такое XMLHTTPRequest на сайте мозиллы. Там вроде былли ссылки на микрософтовский аналогичный объект.
300
20 декабря 2004 года
ReDrum
689 / / 20.04.2000
http://www.fastbugtrack.com/misc/google/ac.js
537
21 декабря 2004 года
Cover
87 / / 14.11.2002
Самый простой способ подгрузить данные с сервера с помощью JavaScript-а без перезагрузки всего документа:
 
Код:
objXMLCont = new ActiveXObject('Microsoft.XMLDOM');
    objXMLCont.async = false;
    objXMLCont.load('server_side_script.php');
   
    if(!objXMLCont.xml) divContent.innerHTML = "Error!!!";
    else divContent.innerHTML = objXMLCont.xml;


Понятно, что divContent - это id любого элемента (не обязательно <DIV>)
Естесственно, после такой подгрузки, если в загруженном контенте есть какие-то java-скрипты, их можно выполнить (только автоматом они, по-моему не станут выполняться, как если бы шли в нормальном документе)

В этом красивом и удобном варианте есть некоторые недостатки:
1) Подгружаемый контент должен быть правильным xml-документом (т.е. тэги закрываются всегда, а параметры обязательно в кавычках и т.п.)
2) !!! эта штука исключительно IE-шная фишка :( и в других браузерах не будет работать.

Если нужна кросс-браузерная совместимость, то пркатют только фрэймы (да и те не везде!)

Я WEB-чатами не пользуюсь (и не делаю), а в остальном можно и без ТАКОЙ динамики обойтись. На мой взгляд, всё что сложнее HTML-а должно делаться в виде SOFT-а.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог