Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Подскажите какой вариант лучше (Ajax)


Автор: numerovan 7.10.2009, 22:55
Вот есть первый способ отсылки данных и получения обратно :
Код

function addloader(x){
        var dpar1 = new Date();
        var dpar = dpar1.getSeconds();
        if(window.XMLHttpRequest) {
            try { req = new XMLHttpRequest(); } 
            catch (e){}
        } 
        else if(window.ActiveXObject) {
            try { req = new ActiveXObject('Msxml2.XMLHTTP'); } 
            catch (e){ req = new ActiveXObject('Microsoft.XMLHTTP'); }
        }
        req.onreadystatechange = function() { 
            if(req.readyState == 4) ajax_o(req.responseText); 
        }     
        req.open("GET", 'http://saite.ru/page.php?content=' + x + '&dpar=' + dpar, true);
        req.send(''); 
    }
    function ajax_o(x) {
        var zelj = document.getElementById('other_page');
        //zelj.innerHTML = decodeURIComponent(x);
        zelj.innerHTML = x;
    }    

и второй способ , подобный , но проблема в том что к ней нужно подключать отдельную библеотеку prototipe.js , размером в 150 кв
но вывод информации следующий.
Скажите какой метод лучше ?
Код

               function m(){
            var name = $('myText').value;
            new Ajax.Request(
                "hello.php?name=" + encodeURI(name),
                {
                    method:"get",
                    onComplete:function(xhr){
                        //$('myDiv').innerHTML = xhr.responseText;    
                        eval(xhr.responseText);
                    }
                }
            );
        }

Подскажите пожалуйста, как отправить данные методом POST , я знаю что он по умолчанию стоит, а значит не нужно писать (method:"get") , а что дальше делать не знаю.
Светлые умы подскажите.

Автор: IDVsbruck 8.10.2009, 02:51
С таким же успехом ты мог предложить варианты с MooTools, YUI, jQuery и т.д.
Первое - хорошо ли ты понимаешь, что, зачем и для чего делаешь? - Если нет, начни с "чистого" кода, чтобы понять нюансы работы с асинхронными запросами. Посидишь пару дней в гугле, но все шарики в голове встанут на свои места и не будешь задавать стереотипных и банальных вопросов.
Если все же кое-какой опыт есть, то работаешь ли ты с фрейворками? Если нет, но все же собираешься, то надо определиться - с какой. По этому поводу есть масса споров и чт-либо доказывать не буду, выскажу свое мнение: наиболее удобной (соотношение объем/удобство/функционал) на сегодня является библиотека jQuery - в сжатом виде окого 20 Кбайт, далее идет prototype, которая в прошлом году уступила свое первое место и немного уступает по производительности. А раз уж ты определишься с фреймворком, то это и будет ответ на твой вопрос ... Фреймворки используются не только для запросов, с их помощью код превращается из рутины в достаточно динамичный, понятный и удобный процесс, экономящий массу времени и добавляющий функционалу сайта динамику и привлекательность, при этом практически кроссбраузерность.
Так что просто выбери направление и иди по нему. Но истоки знать обязан!

Автор: youri 8.10.2009, 09:11
первый способ: полезно, если есть время (глянь http://xmlhttprequest.ru/), но надо привести к виду, в котором его можно использовать, а не писать каждый раз if( window.XMLHttpRequest ) и т.д.

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

Автор: numerovan 8.10.2009, 12:05
понятно ...

Подскажите пожалуйста, как отправить данные методом POST , я знаю что он по умолчанию стоит, а значит не нужно писать (method:"get") , а что дальше делать не знаю.
Светлые умы подскажите. 

Автор: youri 8.10.2009, 12:29
Цитата(numerovan @  8.10.2009,  12:05 Найти цитируемый пост)
а что дальше делать не знаю

а дальше надо запустить код и если будут проблемы, задавать последующие вопросы
или тебя на самом деле интересует обработка запроса и отправка ответа?

Автор: numerovan 8.10.2009, 13:44
Всё мужики разобрался ... вот как нужно отправлять данные методом ПОСТ
Нужно ещё подключить библеотеку prototype.js.

Код

function edit_about_me_anketa(){
        var about = $('textarea_about_me_anketa').value;
        new Ajax.Request(
            "backend_edit_anketa.php",
            {    
                //method: "get",
                method: 'post',
                parameters: "edit_about_me=" + encodeURI(about),
                onComplete:function(xhr){
                    $('text_about_me_anketa').innerHTML = xhr.responseText;
                    //eval(xhr.responseText);
                }
            }
        );
    }


Автор: youri 8.10.2009, 14:55
Цитата(numerovan @  8.10.2009,  13:44 Найти цитируемый пост)
Нужно ещё подключить библеотеку prototype.js

 smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)