Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   AJAX - динамическая подгрузка данных без перезагрузки страниц (http://forum.oszone.net/showthread.php?t=46763)

vadimiron 16-03-2005 13:48 307241

AJAX - динамическая подгрузка данных без перезагрузки страниц
 
Я никогда не обращал своё внимание на данную тему, так как динамическая подгрузка была очень сильно от браузера зависима, и чтобы пользоваться этой возможностью, надо было всегда все особенности популярных браузеров учитывать. Но сегодня нашёл статью, авторы которой утверждают, что их способ работает во всех браузерах (читай: кроссбраузерный).
Вот статья: http://dklab.ru/chicken/nablas/41.html

Что вы думаете об этом??
Кто нибудь что то подобное делал или использовал?

Vlad Drakula 16-03-2005 14:04 307244

vadimiron
я как то писал сайт который весь был на JS и весь генерился автоматически на стороне клиента...

vadimiron
может ты приведешь конкретную задачу а я подумаю над оптимальной ее организацией?

mar 16-03-2005 15:48 307274

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

vadimiron
я читала эту статью. Мне очень нравится. Единственное - надо при программировании обращать внимание на безопасность. (Хотя в целом - решение достаточно безопасное, если делать все в пределах одного сайта и следить за собой :)) Там еще (на сайте автора) - обсуждение. Тоже стоит посмотреть.

Prisoner 17-03-2005 13:28 307576

Да, интересная штука, в особенности псевдокроссбраузерность :). Почему псевдо? В O7.54 она не работает. Об этой феньке еще написано тут, но исключительно для IE, M и FF. Лично я реализовывал такую штуку в админке для фирмы одной рязанской, это было очень удобно как пользователю, так и мне - было требование использовать для дел админских только IE не младше 5.5. Вышеприведенной статьей я и руководствовался... думаю, если разобраться с материалом по ссылке топикфаундера, можно довести дело до ума везде, было бы время :).

E-mail 17-03-2005 21:34 307754

новая версия сегодня в 15:00 вышла..

а методом post никак нельзя обмениваться без перегрузки?
4кб както не внушающе..

и еще помоему, чтото похожее в чатах августа используется.

E-mail 24-03-2005 00:34 309544

mar
кстати по поводу безопасности вот отрыл:
http://www.uinc.ru/articles/40/

что думаете господа?
мне вот не понятно что делает параметр false и true?
true я заметил используется при get запросах
а false как видно при методах trace и post.

кстати говоря мне удалось спомощью этого активного объекта произвести пост запрос, все дело в заголовках.

кому интересна тема, мнения плыз.

mar 24-03-2005 00:43 309547

E-mail
Цитата:

кстати по поводу безопасности вот отрыл:
http://www.uinc.ru/articles/40/
куки тут немного не при чем =)

E-mail 24-03-2005 00:49 309549

mar
ты доконца дочитай

iMP viSiOn 24-03-2005 01:53 309560

Есть опыт по созданию данной фишки под ASP. Вообщем суть, встала проблема, при выборе месяца и года ,автоматом в третьем ниспадающем меню выдавалось кол-во дней в выбраном месяце, конкретного года.

Для этого был написан JS файл, с функциями по перехват и отправке данных на сервер, файл соотв. где были формы и файл по обработке отосланых данных. Т.е. выбирают месяц и год, данные о выбранном сразу идут на файл с обработкой событий и третья форма после обработки получает кол-во дней. Все без перезагрезки страницы.

1. Скрипт файл, который можно имопртировать в файл с меню.
Код:

        // Общий URL до файла (файл должен быть на сервере, где расположена сама страница) с обработкой событий
        var url = "functions/aspvalidate.asp?month=";
        var url2 = "&year=";

        // Присваеваем результат запроса объекту
        function handleHttpResponse()
        {
                if (http.readyState == 4)
                {
                        // Присвоение результата после обработки конкретному объекту, в виде вложеного HTML кода
                        document.getElementById("DateDaySelectSpan").innerHTML = http.responseText;
                }
        }
       
        // При изменении значения полей отправляем запрос снова
        function updateSelection()
        {
                // Считываем значения двух ниспадающих меню
                var SelectedMonth = document.getElementById("DateMonthSelect").value;
                var SelectedYear = document.getElementById("DateYearSelect").value;

                // Отсылаем переменные ффайлу с функциями обработки событий
                http.open("GET", url + escape(SelectedMonth) + url2 + escape(SelectedYear), true);
                http.onreadystatechange = handleHttpResponse;
                http.send(null);
        }
       
        // Получаем заголовок HTTP объекта
        function getHTTPObject()
        {
          var xmlhttp;
               
                // Обработка события IE подобным браузером
                /*@cc_on
                        @if (@_jscript_version >= 5)
                        try
                        {
                                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
                        }
                        catch (e)
                        {
                                try
                                {
                                        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                                }
                                catch (E)
                                {
                                        xmlhttp = false;
                                }
                        }
                @else
                        xmlhttp = false;
                @end @*/
         
          if (!xmlhttp && typeof XMLHttpRequest != '1')
          {
                try
                {
                  xmlhttp = new XMLHttpRequest();
                }
                catch (e)
                {
                  xmlhttp = false;
                }
          }
          return xmlhttp;
        }
       
        var http = getHTTPObject();

2. Едем дальше, код файла для обработки выбраного месяца и года.
Код:

<%
'// Обработка переменных адресной строки
       
if Session("CurrentUserLogin") <> 0 Then

        '// Сбор идентификаторов из адресной строки
        monthID = idStatus("month")
        yearID = idStatus("year")
       
        '// Функция замены вывода данных на экран [Response.Write]
        Function echo(StringContent)
                Response.Write(Stringcontent)
        End Function

        '// Функция обработки переменной адресной строки на предмет целочисленности
        Function idStatus(txtQueryString)
                if isNumeric(Request.QueryString(txtQueryString)) then
                        if Request.QueryString(txtQueryString) > 0 then
                                idStatus = Request.QueryString(txtQueryString)
                        else
                                idStatus = 0
                        end if
                else
                        idStatus = 0
                end if
        End Function
       
        '// Вычисление количества дней в текущем месяце
        Function DaysInMonth(SelectedDate)
                DaysInMonth2 = SelectedDate
                CurrentDate = Day(DaysInMonth2)
                BeginMonth = DateAdd("d",-(CurrentDate-1),DaysInMonth2)
                EndMonth = (DateAdd("m",1, BeginMonth)-1)
                DaysInMonth = Day(EndMonth)
        End Function
       
        '// Вывод количества дней в ниспадающее меню, в зависимости от выбранного месяца и года
        TotalDays = DaysInMonth("1" & "/" & monthID & "/" & yearID)
       
        echo "<select name='DateDaySelect' id='DateDaySelect'>"
       
        '// Окончательный вывод данных в строку, которая уйдет с запросом обрано в документ с меню
        for i = 1 to TotalDays
                echo "<option value=" & i & selectedOption & ">" & i & "</option>"
        next
       
        echo "</select>"
end if
%>

Вроде это все, пришлось помучаться немного, но чтение литературы - вещь поразительно полезная :)

E-mail 24-03-2005 02:20 309567

iMP viSiOn
гы, а я задачу стоявшую не очень понял, нужно было показывать количество дней сколько прошло от даты которую выбрали?:)

под асп эт конечно круто:)

iMP viSiOn 24-03-2005 10:21 309650

хехе :) вообщем в зависимости от года и месяца, вывести макс. количество дней для выбранного месяца :) ай, какая к черту разница ... гланое пашет :Р

E-mail 03-04-2005 16:54 312547

вот пример работы этого объекта с методом post:

Код:


<script>
<!--
var req;

function loadXMLDoc(url,str)
{
if(window.XMLHttpRequest)
{
req=new XMLHttpRequest();
req.onreadystatechange=processReqChange;
req.open("POST",url,false);
req.send(null);
}
else if(window.ActiveXObject)
{
req=new ActiveXObject("Microsoft.XMLHTTP");
if(req)
{
req.onreadystatechange=processReqChange;
req.open('POST',url,false);
req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
req.send('&a='+str+'&');
}
}
}

function processReqChange()
{
document.form1.state.value=stat(req.readyState);
ab=window.setTimeout("req.abort();",5000);
if(req.readyState==4)
{
clearTimeout(ab);
document.form1.statusnum.value=req.status;
document.form1.status.value=req.statusText;
if(req.status==200)
document.form1.response.value=req.responseText;

}

function stat(n)
{
switch(n)
{
case 0: return "не инициализирован";
break;
case 1: return "загрузка...";
break;
case 2: return "загружено";
break;
case 3: return "в процессе...";
break;
case 4: return "готово";
break;
default: return "неизвестное состояние";

}

function requestdata(params)
{
loadXMLDoc('http.php',params);
}

-->
</script>

<form name=form1>
<table width=100% style="font-size: 100%">
<tr><td width=30% valign=top>
Состояние запроса
<td width=70%>
<input size=25 disabled type=text name=state value="">
<tr><td valign=top>Код статуса
<td><input disabled size=2 type=text name=statusnum value="">
<input disabled size=19 type=text name=status value="">
<tr><td valign=top>Данные от сервера
<td><textarea rows=6 name=response disabled></textarea>
<tr><td>Строка POST-запроса<td>
<input type=text name=getparams value="">
<input type=button onclick="requestdata(getparams.value);" value="POST">
</table>
</form>

http.php

PHP код:

foreach($_POST as $k=>$a)
echo 
$a


проблема с русскими буквами, возвращается крякозябра((
ктонибудь может чтонибудь посоветовать?
может в заголовках передаваемых проблема?

iMP viSiOn 06-04-2005 13:01 313351

... аналогичная проблема, русский пропадает. За решение этой проблемы пока еще не брался, времени нету, если кто-то решит эту задачку, то ждемс ответа :)

E-mail 06-04-2005 19:54 313444

поставил модуль под php iconv всеравно проблема остается...

Prisoner 07-04-2005 10:46 313627

Поставить одно, так его ведь и использовать надо. Модуль - лишь набор функций. Сам он за вас делать ничего не будет.

archy 07-04-2005 17:41 313750

Может дело в urlencode?

E-mail 11-04-2005 21:37 314874

archy
что можно предпринять?:)

archy 12-04-2005 08:46 314975

перевести символы в вид %FF

mar 22-12-2005 00:37 385645

давайте я впишу сюда слово AJAX (Asynchronous JavaScript with XML), , - чтоб поисковики находили :) - а то сама с трудом эту тему нашла

Underson 23-12-2005 13:29 386137

<!--МАR прости но я не дочитал твой последний пост и поэтому повторился.. -->
наверное суда

я нашёл такую технологию AJAX и реализацию под php Sajax... вот так вот там можно сделать финкции php доступными из Ява скрипта и как пример было паказано как можно сделать чтение файла с диска без перезагрузки оформления... вот..

Igor_I 25-12-2005 22:25 386754

После недолгих размышлений пришел к выводу - в скором времени возникнет потребность в отключении этого AJAX из броузера.

Vlad Drakula 01-02-2006 17:23 399715

AJAX это не язык...

это смесь языков и технологий...
так что если запретить javacsript то и AJAX не будет работать...

Igor_I 01-02-2006 20:11 399753

Я имел ввиду основную идею AJAX - асинхронная передача данных. Запрет именно на подгрузку данных.

Vlad Drakula 02-02-2006 00:26 399837

Igor_I
запрети активХ объекты и в эексплорере перестанет работать асинхронный режим...

но вот сейчас я хочу исследовать работу без активХ, т.к. там достаточно большие тайминги...

mar 01-03-2006 01:10 412175

Итак, как уже говорилось, в декабрьском (2005 г.) номере phpinside была опубликована статья "Sajax - реализация Ajax в PHP". Статья несомненно хорошая, с примерами. Используется библиотека sajax, работающая, кстати совсем не только с PHP, но и с ASP, Phyton, Rubby, Perl и т.д.
Так вот, у меня тут дошли наконец руки посмотреть примеры и подробности и по этому поводу 2 замечания:
1) в примере из статьи ("Пример для быстрого старта") - опечатка. Вызов x_onClick="AjaxDo()"; - неверен. Следует переправить на onClick="AjaxDo()";
2) после этого пример начинает работать, на его основе можно городить что-то посложнее, но все это счастье кончается, как только мы переходим к работе с template-ами, в которых html отделен от кода. (Я работаю с потомками phplib, но, думаю, что сказанное верно для любых шаблонов, в которых переменные просто вставляются, например в фигурных скобках {my_var} (smarty и другие, особенно пассивные шаблоны). В этом случае попытка выкинуть PHP-код в PHP, оставив HTML и JavaScript в шаблоне терпит фиаско, т.к. наружу нагло лезет кусок, JavaScripta, высовываемого наружу из самой библиотеки.
Решение: правим функцию, которая хулиганит: function sajax_show_javascript вместо echo sajax_get_javascript(); пишем return sajax_get_javascript();
Код:

        function sajax_show_javascript()
        {
                // sajax + templates (i.e. our, smarty (as it use the same principle) and others)
                return sajax_get_javascript();
        }

теперь в шаблоне можно вместо вставки PHP с вызовом этой функции написать, скажем {sajax}, а в обрабатывающем PHP установить для этой переменной значение sajax_show_javascript()
have fun :)

Vlad Drakula 01-03-2006 10:17 412278

очень интересный сайт:
http://www.backbase.com/

он даст достаточно полное представлении и возможностях AJAX

mar 01-03-2006 10:29 412285

Цитата:

он даст достаточно полное представлении и возможностях AJAX
причем всестороннее - грузится долго, можно сразу делать выводы =)

Vlad Drakula 01-03-2006 12:18 412341

mar
он долго грузится из-за не совершенстра протокола HTTP

Vlad Drakula 01-03-2006 14:20 412398

кстати скорость работы AJAXA зачестую обратно пропорциональна сложности вестки...

benya 30-03-2006 21:18 423347

Господа, есть простое задание (?) :
Тег:
Код:

<select>
<option>-</option>
<option>5</option>
<option>4</option>
<option>3</option>
<option>2</option>
<option>1</option>
</select>

При событии onchange отправить значение из select на /send.html
Естественно без перезагрузки страницы. Кто разбирается?

PahaW 31-03-2006 03:34 423433

benya
Посмотри здесь
http://www.awmdev.ru/ftopic7244-15.html

Prisoner 04-04-2006 19:27 424915

Round-up of 30 AJAX Tutorials

mar 10-04-2006 00:16 426380

Цитата:

Опубликована первая публично доступная черновая версия стандарта
"The XMLHttpRequest Object (http://www.w3.org/TR/2006/WD-XMLHttpRequest-20060405/)", в которой описываются требования к реализации объекта XMLHttpRequest, на базе которого построена техника создания интерактивных web-приложений Ajax, основанная на идее динамической подгрузки данных на страницу.


Стандарт позволит Web-разработчиками, при использовании XMLHttpRequest, не оглядываться на особенности реализации данного объекта в различных web-браузерах.


В качестве дополнения привожу ссылки на две новые статьи по Ajax технологиям:

- "Implementing Mutual Exclusion for AJAX (http://www.onjava.com/pub/a/onjava/2...exclusion.html)" - организация mutex блокировок для синхронизации работы web-приложений использующих AJAX;

- "AJAX: Is your application secure enough? (http://www.darknet.org.uk/2006/04/aj...secure-enough/)" - статья про потенциальные проблемы безопасности AJAX приложений.
URL: http://www.w3.org/TR/2006/WD-XMLHttpRequest-20060405/
Источник: http://www.opennet.ru/opennews/art.shtml?num=7302

vadimiron 10-04-2006 01:34 426385

А мне вот интересно, можно ли с помощью Аякса симулировать Audio Streaming?? например каждое n-количество секунд подгружать следующий отрывок мелодии и выводить её??

Vlad Drakula 10-04-2006 01:47 426388

vadimiron
врятли... слишком не постоянны тайминги...

mar 10-04-2006 14:21 426571

если учесть, что audiostreaming - это сплошной поток, который лезет на тебя по udp по запросу, то конечно нет :)

Vlad Drakula 12-04-2006 11:10 427140

полезная ссылка по теме XML в Microsoft Internet Explorer 5.0:
http://fizmat.vspu.ru/citforum/inter...l2/part2.shtml

Vlad Drakula 12-04-2006 11:26 427146

вот столкнулся с проблемой:
мне нужно расшитить базовую функциональность у XMLNode в js проблемы в этом нету,

проблема заключается в том что я не знаю как точно называется этот класс :(

Vlad Drakula 26-04-2006 01:02 431611

сегодня занимался интересной штукой...
по сути это была борьба с броузером...

была задача: отрисовывать прогресс бар по мере инициализации приложения...

в принцепе ничего сложного... берем и вызываем соответствующую функцию, которая изменяет размер картинки...
только вот все эти изменения показываются эксплорером уже после того как закончит работы JS, а мне нужно чтобы во время...

и выход был найден!

была использована возможность отложенного вызова функции... в этом случае эксплорер отрисовывал изменения програс бара по мере выполнения инициализации...

Vlad Drakula 28-04-2006 01:16 432424

ссылка на хороший ресурс с полезными ссылками по теме векторной графики в HTML
http://xmlhack.ru/texts/06/ajax-html...nvas-ruby.html

3D игра на AJAX
http://www.abrahamjoffe.com.au/ben/canvascape/

Vlad Drakula 04-05-2006 18:48 434345

очень хорошо сделаная вещь:
http://www.huddletogether.com/projects/lightbox2/
советую всем взлянуть!

mar 25-05-2006 01:25 442110

http://www.yvoschaap.com/instantedit/ - смотрим и кликаем всюду. Идея отличная. Очень хороша для мест, где одни видят просто текст, а другие могут еще и менять его. Теперь все все видят одинаково, но те, кому положено меняют что хотят, не отходя от кассы :)

Vlad Drakula 25-05-2006 18:37 442378

mar
интересная идея... но начальство от меня этого уже потребовало(пожелало...) неделю назад...

benya 26-05-2006 12:21 442634

Господа! А как мне вернуть 2 значения?
req.responseText; возвращает документ целиком, можно ли положить результат в переменную, а потом обращаться к элементам что-то типа GetElementbyId?
или может это как-то по другому делается?

P.S. Мне нужно вернуть 1 значение - цифра, 2 значение либо пустое либо disabled

Vlad Drakula 26-05-2006 12:25 442638

benya
я мне с сервера приходит XML я его преобразую в соотверствующий обект и уже c помощью XPath выбираю нужные значения.

vadimiron 26-05-2006 12:32 442641

http://ajaxpatterns.org
Good site

benya 26-05-2006 13:04 442656

Vlad Drakula,
У тебя всегда как-то, где-то в облаках. ;)) Предположим я тоже отдам c сервера XML. Как его преобразить в обьект и как потом получить доступ к элементу? (Любой пример)

Vlad Drakula 26-05-2006 13:20 442666

benya
Цитата:

У тебя всегда как-то, где-то в облаках. )
ц меня на руках сейчас очень большой фреймворк(написаный на AJAX)... который постоянно растет... там сообветственно есть некоторые дополнения у языку.... и обертки на активХ объекты... в общем дофига всяких вкусностей... но и весит все это добро не мало...

Цитата:

Предположим я тоже отдам c сервера XML. Как его преобразить в обьект и как потом получить доступ к элементу? (Любой пример)
за частую не нужно следовать моим советам... я их даю с точки зрения "ентерплайз" систем... далеко не факт что вам такие решения подходят... иногда они могут выглядеть как из пушки по воробьям...

самый просто вариант передавать строчку вида
Код:


[****][****]

и парсить ее простеньким регекспом...

Prisoner 26-05-2006 14:16 442687

benya, ты случаем не Subsys_JsHttpRequest_Js юзаешь Дмитрия Котерова?

Vlad Drakula 26-05-2006 14:18 442688

Prisoner
Цитата:

ы случаем не Subsys_JsHttpRequest_Js юзаешь Дмитрия Котерова?
вот мне очень интересно откуда взялось такое предположение???

benya 26-05-2006 15:03 442705

Prisoner,
Нет. Я на примерах с нета наковырял кусков, лишнее повыкидал, модифицировал "под себя". Получается довольно работоспособно.

Prisoner 26-05-2006 15:35 442712

Цитата:

Prisoner
Цитата:

ы случаем не Subsys_JsHttpRequest_Js юзаешь Дмитрия Котерова?
вот мне очень интересно откуда взялось такое предположение???
Так получилось. Библиотека довольно сильно распространена и легкость оперирования данными с ее помощью чрезвычайно высока. кроме того уровень содержащегося в ней кода просто неприлично профессионален - все лаконично и до предела оптимально.
Кстати, обилие вопросительных знаков в твоем вопросе лично мной воспринимается со смыслом "как такая мысль вообще могла возникнуть?! 'Это какой-то позор' (с) Швондер.", что неприятно. Прошу учесть, пожалуйста.


benya
В библиотеке которую я упомянул применяется интересный трюк (насколько я понял): делается eval(req.responseText) и если req.responseText содержит код (пусть и в текстовом пока виде) являющийся валидным кодом JS, то он выполнится. Т.о. передавая с сервера конструкцию вида 'var arr={someField1: 'someFieldValue1', someField2: 'someFieldValue2', ...}', мы при eval(req.responseText) получим значение arr в контексте функции обработки вернувшихся данных. Если же переменную arr объявить где-то в начале скрипта, то arr будет иметь глобальный характер. Впрочем это зависит уже от необходимости. Стало быть просто генерируем на стороне сервера JS-хеш произвольной сложности в текстовом виде и обращаемся к нему в клиенте обычным образом.

Vlad Drakula 26-05-2006 15:59 442722

Prisoner
Цитата:

Так получилось. Библиотека довольно сильно распространена и легкость оперирования данными с ее помощью чрезвычайно высока. кроме того уровень содержащегося в ней кода просто неприлично профессионален - все лаконично и до предела оптимально.
Кстати, обилие вопросительных знаков в твоем вопросе лично мной воспринимается со смыслом "как такая мысль вообще могла возникнуть?! 'Это какой-то позор' (с) Швондер.", что неприятно. Прошу учесть, пожалуйста.
1) извениюсь за вопросы... просто я все осмотрел так и не понял почему именно она а ни чтонибуть другое... вот это как раз меня сильно и удивило!
2) нет чтобы ссылку на эту библиотеку привести!

Prisoner 26-05-2006 18:14 442775

1) Спасибо.
2) Вот статья с описанием, в рамках сайта она носит название "набла", только чур не спрашивать, что это означает :)

mar 26-05-2006 18:52 442788

Цитата:

Цитата Vlad Drakula
2) нет чтобы ссылку на эту библиотеку привести!

нет чтобы в первый пост темы заглянуть :)

Vlad Drakula 27-05-2006 15:24 443069

пед тем как браться за AJAX
всем читать:
http://www.dklab.ru/chicken/nablas/38.html и http://www.dklab.ru/chicken/nablas/39.html

и это тоже не помешает: http://www.dklab.ru/chicken/nablas/40.html

Prisoner 28-05-2006 02:26 443310

Цитата:

Google открыла доступ к Google Web Toolkit - инструменту для написания Ajax-приложений (в стиле Gmail, Google Maps и т.п.) на Java. Вместо мучений с яваскриптом, программист теперь может спокойно писать и отлаживать свой код на Java (с помощью чистого JDK, Eclipse, проекты для которого тоже генерируются, либо любой другой привычной среды разработки), используя вполне приличный набор стандартных компонентов. Все, что остается после этого - одним махом сгенерировать из Java-кода Ajax-приложение в виде набора html-файлов и кода на яваскрипте, получив заодно на блюдечке совместимость с большинством современных броузеров. Очень впечатляет и попахивает революцией в веб-программировании.
Интересная штука, судя по комментарию и контенту по ссылке. В понедельник плотнее погляжу на работе чем это пахнет.

Vlad Drakula 31-05-2006 16:15 444667

мня тут заинтересовал один интересный вопрос...

есть у меня обэект... поторый возвращяется с помощью XPath от XML актив-икс объекта...

и как бы этому чемунибуть приписать дополнительные свойства... и методы?

Prisoner
Цитата:

Интересная штука, судя по комментарию и контенту по ссылке. В понедельник плотнее погляжу на работе чем это пахнет.
ну? посмотрел чем пахнет?

Prisoner 31-05-2006 19:15 444741

Упс. Сорри. Явой (Java) это дело пахнет :\. А я ее, простите, на дух не переношу. В общем философия там простая - есть куча компонентов, ляпаем их как нам заблагорасудится, пишем на Java код: обработчики и прочее. "Компилим" и получаем страничку с JS кодом который и обеспечивает передачу данных по философии Ajax.

А на счет объекта... он в рамках чего объект? JS, полагаю?

XCodeR 31-05-2006 21:36 444797

в двух словах, но желательно подробных, как можно реализовать следующее:
есть таблица, в ней кнопки new/best
по нажатие(ю?) на которые происходит загрузка соответствующей выборки из таблицы MySql. Можно ли это сделать без перезагруки страницы?... как?

заранее, спасибо

Vlad Drakula 31-05-2006 21:52 444806

XCodeR
самый просто вариант использовать тег IFrame

Prisoner

хочется написать нечто вроде этого:

PHP код:

***.prototype.newf = function(){
return 
1;
}

var 
xml ActiveXObject("Microsoft.XMLHTTP");

alert(xml.newf()); 


XCodeR 31-05-2006 22:03 444812

Vlad Drakula
по поводу IFrame я думал....
а средствами Ajax?...
или это вообще не в том ключе?..

Vlad Drakula 31-05-2006 22:16 444814

XCodeR
ну... на AJAX сделать без проблем...(для меня это повседневное дело...)(но для этого у меня написаны сотки килобайт JS кода...), но я бы сказал что это из пушки по воробьям!

хочется ответить что AJAX это не язык и не технология, а всего лиш концепция и идеология!

XCodeR 31-05-2006 22:17 444821

Vlad Drakula
а поделиться?...;)
ну или показать направление, в котором надо "рыть"....

воот интересно, если 100 кб, то это все будет грузить пользователь?..

Vlad Drakula 31-05-2006 22:20 444823

XCodeR
Цитата:

а поделиться?...
не могу, это коммерческие разработки...

Цитата:

ну или показать направление, в котором надо "рыть"....
направление показать могу, но все зависит от того чего ты хочешь добиться...

Цитата:

воот интересно, если 100 кб, то это все будет грузить пользователь?..
не понял вопроса...

XCodeR 31-05-2006 22:48 444837

Vlad Drakula
Цитата:

не могу, это коммерческие разработки...
понятно...

Цитата:

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

Цитата:

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

Vlad Drakula 31-05-2006 22:55 444841

XCodeR
ну... у меня не 100КБ а порядка 700Кб + еще 500КБ XSL шаблонов...

Цитата:

того что написал в первом моем посте на этой странице.
как я и говорил простенький JS + IFrame...

Vlad Drakula 01-06-2006 00:54 444878

Prisoner
Цитата:

Упс. Сорри. Явой (Java) это дело пахнет :\. А я ее, простите, на дух не переношу. В общем философия там простая - есть куча компонентов, ляпаем их как нам заблагорасудится, пишем на Java код: обработчики и прочее. "Компилим" и получаем страничку с JS кодом который и обеспечивает передачу данных по философии Ajax.
с ужасом представляю на сколько это может быть в итоге тормозно... как нибуть тоже гляну на это, и обязательно гляну на итоговый код который пишет системмы...

Prisoner 01-06-2006 01:21 444882

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

Влад, а попробуй расширить прототип объекта Object. Минус тут в том, что у всех объектов (String, Array, etc) добавится этот метод, но попытка не пытка.

Vlad Drakula 01-06-2006 08:20 444939

Prisoner
Цитата:

Влад, а попробуй расширить прототип объекта Object. Минус тут в том, что у всех объектов (String, Array, etc) добавится этот метод, но попытка не пытка.
пробовал, не помогло...

mar 01-06-2006 11:18 444987

XCodeR
я где-то сильно выше писала про sajax. Это 5 кб кода. Очень рекомендую. Библиотека поставляется с примерами. Для использованием с шаблонами нужна очень небольшая переделка (я выше писала), хотя м.б. они ее уже и внесли в код. Пример испльзования с шаблонами могу дать (но там у меня много дополнительных классов для других вещей)

XCodeR 01-06-2006 14:39 445075

Vlad Drakula
хочется не только сделать, но и "познать" AJAX
Prisoner
посмотрел, вприцнипе понятно... спасибо
mar
спасибо.

XCodeR 01-06-2006 17:50 445220

а рационально ли делать сайт полностью на основе AJAX, т.е. при переходе по ссылкам меняется контент, но остается оформление...

про IFRAME и FRAMEs я знаю

Vlad Drakula 01-06-2006 17:57 445228

XCodeR
я делая гуишное приложение на ajax... (полноценное гуишное приложение) в принцепе это оправдано только для интранета...

XCodeR 10-06-2006 19:27 449335

http://www.google.ru/ig
там слева есть таблица. Это AJAX?...

E-mail 09-07-2006 06:06 459379

http://www.ibm.com/news/ru/ru/2006/06/0504.html

статья по теме от 5 июня, свежая:)

познать ajax - это познать js и xml судя по обривиатуре;) дословно и сокращенно - асинхронный js и xml

Единственное что я не уловил в статье, это то что авторы статьи приписывают к достоинствам внедрения ajax такие вещи как перетаскивания объектов внутри браузера. Будто бы это чтото неизведанное рание разработчикам. Хм, но ведь драгндроп давно используется и применяется разработчиками и того ранее, причем тут ajax - непонятно)) обычный dhtml и js.

E-mail 31-07-2006 03:59 466546

вообще если так посмотреть, то по сути ajax - это очередной ответный удар в войне форматов по флешу.

очередная смена дизайна yahoo, довольно смело и интерактивно, но есть некоторые моменты непредсказуемости, в общем смотрится не плохо

кстати говоря, будем надеятся что на этот раз рамблер не будет себе делать откровенно говорящий плагиат дизайну yahoo

XCodeR 31-07-2006 14:04 466717

E-mail
Цитата:

вообще если так посмотреть, то по сути ajax - это очередной ответный удар в войне форматов по флешу.
обоснуйте?
имхо, флеш немного другая технология.

Vlad Drakula 06-08-2006 09:11 468752

очень толково описан класс:
http://sarissa.sourceforge.net/doc/

E-mail 01-09-2006 01:33 479305

http://htmlcoder.visions.ru/JavaScript/?30

Vlad Drakula 01-09-2006 12:43 479485

E-mail
интересная статья...
но вот эта:
http://htmlcoder.visions.ru/JavaScript/?29
на мой взгляд является более насущьной...

E-mail 01-09-2006 23:30 479745

Vlad Drakula ну вообщето это косвенно относится к теме топика:)

мне более привычен второй вариант решения, я его считаю более удобочитаемым, по этому мне не грозит обжорство ie... ну или третmt полурешение (в п.с.), кроме того там опечатка в предпоследнем абзаце:)

VeshchiyOleg 15-09-2006 15:54 485303

попробовал я аякс...
интересная задумка, но, на мой взгляд неудачное исполнение ActiveX компоненты для internet explorer
или просто сырое еще...
не надо меня разубеждать в том, что ПОДАВЛЯЮЩЕЕ БОЛЬШИНСТВО обычных пользователей интернет используют (извините за тавтологию) IE - не поверю
лучшим мне все же показалось решение
* Subsys_JsHttpRequest_Js: JavaScript DHTML data loader.
* (C) 2005 Dmitry Koterov, http://forum.dklab.ru/users/DmitryKoterov/
правда я все-таки закомментировал строки:
Код:

                        // Try to use built-in loaders.
                        var req = null;
                        if (window.XMLHttpRequest) {
                                try { req = new XMLHttpRequest() } catch(e) {}
//                        } else if (window.ActiveXObject) {
//                                try { req = new ActiveXObject("Microsoft.XMLHTTP") } catch(e) {}
//                                if (!req) try { req = new ActiveXObject("Msxml2.XMLHTTP") } catch (e) {}
                        }

т.е. запретил использование ActiveX (для IE)
ибо устал бороться с эксплорером: он виснет!!!
максимум, чего я сумел добиться так это от 30 минут до часа нормальной работы (запросы каждые 5 секунд - чат, обсуждался в одной из тем на этом форуме) без зависания
а потом все равно виснет (интернет эксплорер не подает признаков жизни от 30 секунд до 5 минут, потом непродолжительное время живет и опять уходит в себя)
без ActiveX работает немного медленнее, но стабильно

зы
говорят, в IE7 есть встроенная поддержка XMLHttpRequest
не видел

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

Prisoner 16-09-2006 09:48 485534

VeshchiyOleg, виснуть он может и по иной причине: утечки памяти. Если в обработчике загрузки данных создавать HTML элементы, то IE каждый раз выделяет память, но не чистит ее, если элементы не удален ручками. Возможно, что прbчина зависания как раз в этом (более того, автор библиотеки Дмитрий Котеров, если почитать комментарии порой на это указывает, поглядите функцию dummy), поглядите этот топик, где-то в нем Влад давал ссылку на инструмент помогающий локализовать эти memory leaks. Кстати, вот Вы говорите, что добавили метод, а мне видится, что изменили и не значительно. Поясните, плиз.

Vlad Drakula 21-09-2006 22:44 487934

VeshchiyOleg
1) я занимаюсь разработкой AJAX системм на много больше чем чат... и при этом не системма не очень то часто повисает
2) утечти памяти не связаны с использованием ActiveX, т.е. память в IE и без него течет
3) тормоза описываемые вами очень напоминают на неправильную верстку...
4) сегодня делал тест в IE отображение таблицы из 6,5МБ XML ответа сервера, IE выжил нормально!
5) Subsys_JsHttpRequest_Js организует системмы удаленного вызова, а системмы клиент / сервер на нем не построишь! (если и построишь то не очень прямо...), XMLHttpRequest больше подходит для организации клиент / сервер

VeshchiyOleg 23-09-2006 15:57 488577

не нужно недооценивать чат как таковой! не думаю, что "системмы на много больше чем чат" требуют ежесекундного обновления дабы отображать актуальную информацию
также сомневаюсь, что возникает потребность выполнять одновременно (именно одновременно) два и более запросов к серверу
память в ие течет... не спорю...
в файрфоксе тоже течет (при должном старании и установке "нужных экстэншенов") ;)
однако при отключении именно ActiveX компонент проблемы с утечкой памяти почему-то пропали
и дело тут, я думаю, не в объеме одного запроса, а в частоте и количестве запросов и обращений к ActiveX - где-то там внутри наверняка есть чистильщик памяти и он не успевает справляться с теми объемами, которые я его заставляю обрабатывать (ну это мое IMHO)

зы
5) не понял - можно поконкретнее???
где-то в этом или другом форуме была восторженная ссылка на prototipe (набор классов для javascript)
вещь отличная, монументальная, содержит кроме всего прочего методы XMLHttpRequest
однако я не готов предложить посетителям моего сайта каждый раз качать пару сотен кБ скриптов

Vlad Drakula 23-09-2006 19:37 488650

VeshchiyOleg
Цитата:

не думаю, что "системмы на много больше чем чат" требуют ежесекундного обновления дабы отображать актуальную информацию
я вот зря... требуют... и объем данных для передбчи зачастую на много больше чем в чате...

Цитата:

также сомневаюсь, что возникает потребность выполнять одновременно (именно одновременно) два и более запросов к серверу
вполне зря... т.к. у меня зачастую идет порядка 16 паралельных запросов...

Цитата:

однако при отключении именно ActiveX компонент проблемы с утечкой памяти почему-то пропали
и дело тут, я думаю, не в объеме одного запроса, а в частоте и количестве запросов и обращений к ActiveX - где-то там внутри наверняка есть чистильщик памяти и он не успевает справляться с теми объемами, которые я его заставляю обрабатывать (ну это мое IMHO)
я бы вам посоветовал почитать несколько статей о том как и из-за чего течет память в IE

Цитата:

не понял - можно поконкретнее???
где-то в этом или другом форуме была восторженная ссылка на prototipe (набор классов для javascript)
вещь отличная, монументальная, содержит кроме всего прочего методы XMLHttpRequest
однако я не готов предложить посетителям моего сайта каждый раз качать пару сотен кБ скриптов
читал я много разных статей... и про это тоже, но нужно делать личный выбор осмысленно а не под влиянием какойнибуть статьи...

Subsys_JsHttpRequest_Js передает JS код, и в рекомндациях к нему написано что аснхонные запросы ему даже вредны, т.е. сервер отдает на клиентскую часть код который клиентская чать испольняет, здесь идет четкая привязка к тому что принимать ответ сервера быдет именно броузер, к примеру если XMLHttpRequest то можно построить системму так что будет один сервер и будет несколько видов клиенетов, один из которых будет написан на JS, и в принцепе серверу будет наплевать какой клиент с ним общается, конечно Subsys_JsHttpRequest_Js можно такое написать но это будет уже в обход... и просто доказывание что и Subsys_JsHttpRequest_Js это тоже умеет. с помощью XMLHttpRequest можно полностью разделить клиентской и серверное приложение и передовать только данные, а с Subsys_JsHttpRequest_Js такое не получится (идеология не та...)

VeshchiyOleg 25-09-2006 09:40 489099

Цитата:

Subsys_JsHttpRequest_Js передает JS код,
ТОЛЬКО в случае, если недоступны window.XMLHttpRequest, ActiveXObject("Microsoft.XMLHTTP"), ActiveXObject("Msxml2.XMLHTTP")
именно в такой последовательности

если не секрет, поделись опытом:
какими библиотеками пользуешься? (или самопис??? нельзя ли выложить для скачивания и рассмотрения и конструктивной критики/выражения восхищений???)
действительно ли в IE не виснет???

Vlad Drakula 25-09-2006 21:29 489488

VeshchiyOleg
Цитата:

какими библиотеками пользуешься?
в качестве ядра Sarissa

еще очень интересная вещь: ActiveWidgets

Цитата:

действительно ли в IE не виснет???
ie действительно достаточно устойчив, если держать его постоянно в апдейте + аккуратно писать код, то он может крутить в себе достаточно тяжолые AJAX приложения.

mar 25-09-2006 22:40 489514

Цитата:

если держать его постоянно в апдейте
ну это-то зависит не от тебя, а от пользователей :)

Vlad Drakula 26-09-2006 01:29 489553

mar
Цитата:

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

VeshchiyOleg 26-09-2006 10:03 489637

Цитата:

запросить у пользователя версию брозера, и если она не свежая то предложить для начала обновиться...
гыыы
а зачем тогда кроссбраузерность???
узнаем версию браузера и если это не файрфокс просим закачать его и установить ;)
и все довольны

mar 26-09-2006 12:35 489723

VeshchiyOleg
:up:
Vlad Drakula
ты извини, но если это не интранет-приложение, где сотрудников (а точнее админа) можно просто к чему-то обязать, то люди просто не обратятся к такому ресурсу. Это, знаешь ли очень надо захотеть получить именно эту информацию, чтоб позволить авторам диктовать себе условия - каким броузером я буду смотреть на его ресурс =)

Vlad Drakula 26-09-2006 20:38 489982

VeshchiyOleg
ФФ не принциписально лучьше ЕИ и JS в нем работет не принципиально быстрее... и не скажу что он безглючнее....

mar
а есть еще один класс веб приложений... которые видут себя как интранет, но при этом являются доступными из глобальной сети.

VeshchiyOleg 26-09-2006 21:27 490003

вообще-то мы в этой теме говорим не о JS в общем, а об AJAX в частности
и не мне об этом напоминать
а в плане AJAX у меня к window.XMLHttpRequest в FF претензий как не было сначала, так и нет
вот кто бы поделился как кто для себя решает проблему кроссбраузерности в аяксе, а именно тормоза при работе с ActiveX (если таковые замечаются)
хотя, может, я на них зазря грешу???

сарисса меня не вдохновила - растянуто на 4 файла
всё настолько запутано, что без мануала разобраться сложно
да и объем внушительный
если это лишь ядро, то я представляю, какая обвязка
и меня несколько коробит такой подход к кроссбраузерности, когда в самом начале скрипта определяют браузер, и внутри каждого блока пишут javascript именно под этот браузер - ведь логика приложения не должна зависеть от браузера... IMHO

вот, например, на http://maps.google.com/ вряд ли кто жалуется, что подтормаживает ибо там картинки огромные, да и обновление только по запросу пользователя
хотя именно этот сайт вдохновил меня 2 месяца назад вплотную заняться технологией AJAX
я пытался разобрать javascript с него
кстати, никто не подскажет, как (чем) отформатировать (привести в читабельный вид) javascript и обратно поубирать лишние пробелы и символы конца строки
однако, у меня ничего не вышло
но, в том же subsys также на примере этого же сайта все было подробно разложено по полочкам и этот класс был создан, так сказать, по образу и подобию, с той лишь разницей, что вместо встроенного iframe (при отсутствии XMLHttpRequest и ActiveX) использовался динамически создаваемый объект script, что, по заверениям автора, идет дальше в этом начинании и переплевывает сам гугл с его сотнями программеров
вот на это я и повелся

итак.
кто как для себя (для пользователей сайта) решил проблему с тормозами Эксплорера?
версию ответа с предложением обновить браузер не предлагать - не актуально, шутка два раза не прокатывает

Vlad Drakula 26-09-2006 22:51 490035

VeshchiyOleg
Цитата:

вот кто бы поделился как кто для себя решает проблему кроссбраузерности в аяксе, а именно тормоза при работе с ActiveX (если таковые замечаются)
хотя, может, я на них зазря грешу???
1) сарисса
2) разница в производительность FF и IE не очень велика

Цитата:

сарисса меня не вдохновила - растянуто на 4 файла
всё настолько запутано, что без мануала разобраться сложно
да и объем внушительный
1) не обязательно брать все четыре файла... мне и 3х хватило...
2) дело втом что сариса делает очень важную вещь: она приводит набор объектов к одинаковому виду... к примеру она правильно создает объект window.XMLHttpRequest в IE... создает объекты для работы XML / XSL / XPath...
3) я с помощью ее за день смог заставить проект запустится под FF... (до этого он более 7 месяцев разрабатывался только под IE...)

Цитата:

кто как для себя (для пользователей сайта) решил проблему с тормозами Эксплорера?
эти траблы как правило из-за не очень хорошей организации программы, и тормозной верстки...
я вот сегодня делал сортировку в датагридах... так к примеру датагрид меняет стейт примерно за 1с... не плохо если учитывать что пинг до серера в районе 200-300... (сортировка происходит на сервере)

Prisoner 27-09-2006 10:55 490178

VeshchiyOleg, на счет стайлеров тут поглядите. Да, кряков не просить, на этом форуме варез запрещен.

megawar 27-09-2006 12:58 490251

Здравствуйте, у меня такая проблема:
Код:

<script>
<!--
var req;
var method='POST';
function loadXMLDoc(url,str)
{
        if(window.XMLHttpRequest)
        {
        req=new XMLHttpRequest();
        req.onreadystatechange=processReqChange;
        req.open(method,url,false);
        req.send(null);
        }
        else if(window.ActiveXObject)
        {
        req=new ActiveXObject("Microsoft.XMLHTTP");
                if(req)
                {
                req.onreadystatechange=processReqChange;
                if(method=='POST'){
                req.open('POST',url,false);
                req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                req.send('&submit=1&'+str+'&');
                }
                if(method=='GET'){
                req.open('GET',url + '?submit=1&ans=some_text',true);
                }
        }
}
}

function processReqChange()
{
if(req.readyState == 4)
{
//clearTimeout(ab);
document.form1.response.value=req.responseText;
}
}

function requestdata(params)
{
loadXMLDoc('http.php',params);
}

-->
</script>

При методе Пост работает отлично, нежели при методе гет, при гете не пашет((

Я взял этот код со второй страницы топика, немного переделал, у меня была раньше проблема, что работал ТОЛЬКО гет, сейчас все наоборот, помогите пожалуйста.

Prisoner 27-09-2006 15:51 490341

megawar
1) Где Вы "со второй страницы топика" код взяли? Уточните, пожалуйста.
2) Чем выражается "не работает"? Больше данных, пожалуйста: в каких броузерах выявляется проблема, при каких значениях параметров, в каких участках кода (кстати, задав себе эти вопросы в 99% случаев проблему можно решить самостоятельно, что гораздо быстрее)?
3) Поглядите в сторону
Цитата:

Класс XMLHttpRequest, используемый в Mozilla и FireFox, в настоящий момент присутствует только в этих браузерах (поддержка этого класса в Opera 8.01 весьма ограничена). У него есть небольшой недостаток: при умолчательных настройках FireFox запрещено загружать данные откуда-то, кроме как с текущего сайта.

megawar 27-09-2006 16:26 490370

Метод ГЕТ в данном коде не работает ни в одном браузере, пост наоборот работает.

Код переделал этот : http://forum.oszone.net/thread-46763-2.html

Посоветуйте какой класс можно использовать всемсто этого, где можно найти примеры

megawar 27-09-2006 21:32 490483

Поменял все полностью на http://www.dklab.ru/lib/Subsys_JsHttpRequest/

Этот код на входной странице:

Код:

function doLoad(url,params,method) {
  var req = window.XMLHttpRequest?
    new XMLHttpRequest() :
    new ActiveXObject("Microsoft.XMLHTTP");
  req.onreadystatechange = function() {
    if (req.readyState == 4)
      alert('Loaded:\n'+req.responseText);
  }
 
  if(method=='POST'){
                req.open('POST',url,false);
                req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                req.send(params);
        }
        if(method=='GET'){
                req.open('GET',url + params,true);
                req.send(null);
        }
  //req.open("GET", url, true);
  //req.send(null);
}
</script>
<input type="button" value="Show me" onclick="doLoad('http.php','?submit&ans=---','GET')">

Опять же, при методе гет данные передаются отлично, русский шрифт работает, но с пост'ом проблемы, данные не передаются((

Нид хелп. Плз

И хотел бы услышать ваши высказывание о Subsys_JsHttpRequest by Dmitry Koterov

Prisoner 28-09-2006 10:02 490648

megawar, а зачем Вам эта функция-то? Библиотека предоставляет весь необходимый функционал. Внимательно поглядите примеры.

megawar 28-09-2006 13:37 490744

данная функция очень удобна но мне нужна работа с методом ПОСТ если кто может помочь - плз ответьте

benya 28-09-2006 14:16 490765

megawar, См. здесь

megawar 28-09-2006 15:16 490802

benya, спасибо конечно, но понимаеш я хочу разобраться почему в моем коде не работает пост ((

mar 28-09-2006 15:29 490808

megawar
да и много где. Я уже писала про sajax. Эта библиотека прекрасно работает с POST и очень компактная, что немаловажно для тяжелых проектов. Единственное "но", иногда требуются небольшие изменения - почитайте в моем посте (адрес выше).

megawar
извини, когда писала не видела твоего сообщения. Про GET/POST от Котерова тоже было и на этих страницах и на форуме у самого Котерова. Изначальный вариант, насколько мне помнится, действительно не для POST.

megawar 28-09-2006 18:07 490886

mar
А можно както переделать для пост? вот эти строчки из функции Котерова наводят на размышление:
Код:

if (this._xmlReq && hasSetHeader && method == "POST") {
                // Use POST method. Pass query in request body.
                // Opera 8.01 does not support setRequestHeader, so no POST method.
                this._openArg.method = "POST";
                href = url;
                body = query;
}


Prisoner 30-09-2006 13:29 491604

Может быть просто использовать Вами же и упомянутую библиотеку? Они ведь для того и нужны, чтобы зная интерфейс свободно работать без знания внутренних процессов. Это их изначальный смысл.

megawar 01-10-2006 02:30 491781

Всем спасибо, проблема решена

Prisoner 01-10-2006 14:51 491916

Каким образом, если не секрет? А то вопрос был для всех, а вот решение только для Вас :).

megawar 03-10-2006 20:16 492894

Написал две функции рабочии, одна работала с методом пост, другая гет, все грамотно организовал, потом возникла проблема с кодировкой, которую решил отсылав значения переменных при посте в URIencode, и в пхп заголовок UTF-8

Vlad Drakula 04-10-2006 22:36 493457

тут недавно поднимался вопрос об утечках памяти...
сегодня я модернизировал системму над которгой работаю на работе, в итоге при раде запросов с сергера колличество памяти занимаемой броузером не только не увеличивалось, а даже сокращалось.

так что если аккуратно работать, и писать аккуратный код то память будет течь не особо активно!

Vlad Drakula 02-02-2007 18:44 544920

вот встал вопрос: можно ли в опере сделать эмуляцию XSL как в IE, в FF можно, а вот в опере?

E-mail 03-02-2007 01:30 545047

как понять: "эмуляцию XSL"?

Vlad Drakula 12-02-2007 16:35 548967

E-mail
ну... в том смысле - как сделвать XSL преобразование в опере.

LaoTsi 07-03-2007 22:50 559051

Существует масса статей Ajax которые освещают локальные вопросы технологии, а вообще с чего начать изучать Ajax?

Vlad Drakula 08-03-2007 11:36 559178

LaoTsi
1) Ajax - не есть технология, это концепция... ее нужно не столько изучать сколько понимать...
2) чтобы хорошо с этим разобраться, нужно иметь опыт работы с этим, соответственно вам нужно начать какойнибуть учебный проект и на основе его вы сможете изучить Ajax.

LaoTsi 08-03-2007 15:10 559229

а что это может быть за учебный проект? как я могу догадываться в основу концепции заложена технология, если да, то какая?

Vlad Drakula 08-03-2007 15:51 559249

LaoTsi
Цитата:

а что это может быть за учебный проект?
можно например написать простенький чат...

Цитата:

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

но одно нужно знать точно: JavaScript

LaoTsi 08-03-2007 16:30 559261

ок, начну с изучения JavaScript, какой мануал посоветуете и среду разработки для JS

Vlad Drakula 08-03-2007 16:54 559267

LaoTsi
для начала наверное имеет смысл прочитать эту темы полностью!

LaoTsi 08-03-2007 18:30 559286

прочитал, что дальше?

Vlad Drakula 08-03-2007 23:59 559368

LaoTsi
тогда вы там видили сслыки на стабтиь "набла" по JS

LaoTsi 09-03-2007 13:32 559539

да, даже прочитал :)

Vlad Drakula 09-03-2007 14:03 559557

LaoTsi
хорошо, тогда вам нужно начинать свой первый проект с использованием AJAX

LaoTsi 09-03-2007 14:25 559564

:) ок, если подитожить, то:
1. мне нужно выучить JavaScript
2. опираясь на полученные знания и статьи с dklab начать писать свой проект
3. супер, не думал что всет ак просто :)
и тогда встречные вопросы:
1. что это за проект может быть, чат мне неинтересен?
2. какой редактор посоветуете?
3. прокурируете мою деятельность?
сейчас усиленно читаю книгу по javascript довольно-таки интересно :)

Vlad Drakula 09-03-2007 14:48 559573

LaoTsi
Цитата:

1. мне нужно выучить JavaScript
без этого никуда!

Цитата:

2. опираясь на полученные знания и статьи с dklab начать писать свой проект
статей с dklab не доастоточно, те статьи лиш дают представление оом как действительно устроена объектная модель в JS

Цитата:

1. что это за проект может быть, чат мне неинтересен?
для начала нужно попробовать что то простое, то что хорошо подходит для этой технологии... чат или месенжер очень хорошо подходят, врятли стоит начинать с более сложных вещей! (нет конечно можно взяться за системмы большого объема но для начала без хороших навыков в програмировании и определенных личных качеств это подобно самоубийству!)

Цитата:

2. какой редактор посоветуете?
об этом много уже написано здесь: http://forum.oszone.net/thread-65034.html

Цитата:

3. прокурируете мою деятельность?
я могу помощь ответами на конкретные вопрос, и какимито советами, но для этого советую вам создать отдельную тему.

Цитата:

сейчас усиленно читаю книгу по javascript довольно-таки интересно
я не встречал ни одну кригу действительно хорошую по JS...

LaoTsi 12-03-2007 18:15 560734

а как образец для подражания, где можно взять скрипт чат, на примере легче разбирать?

Vlad Drakula 12-03-2007 18:45 560743

LaoTsi
я думаю что в вашем случае лучьше некоторое время по наступать на грабли и по изобретать велосипед, так быстрее опыта по началу будете набираться.

LaoTsi 12-03-2007 21:46 560807

я не придерживаюсь такого стиля обучения

Prisoner 12-03-2007 23:41 560839

Ради Бога. Главное для себя Вы уже решили. Сделайте малое - используйте google.

Arrest 19-03-2007 06:37 563538

Ссылка в тему: http://www.boonex.com/products/orca/ . Это форум на PHP(с использованием классов), который почти везде использует AJAX для смены содержания страницы. Русский не понимает. Рекомендую скачать и потыкать. Онлайн демо: http://www.demozzz.com/orca/demo/

LaoTsi 19-03-2007 19:19 563903

супер, только под Дэнвером не пашет :(

A point H point 04-08-2007 10:20 622811

Просто хочу поделиться тремя простыми способами решения проблемы русского языка в Ajax:

1. создаем файл .htaccess (или дописываем в существующи) со строчкой:

Код:

AddDefaultCharset windows-1251
2.

в файле с русским текстом дописываем следующий код:

PHP код:

header("Content-Type: text/html;charset=windows-1251"); 

3. в текстовом редакторе (например Блокноте) сохраняем текст в UTF-8 кодировке
примечание: сайт тоже должен быть разработан в этой кодировке...

есть и более сложные способы решения этой проблемы я привел самые простые...

NoTitLe 06-05-2008 07:59 795826

А где можно качнуть электронный учебник нормальный по аяксу. киньте ссылки в пм или сюда

Busla 06-05-2008 11:44 795952

у IBM на DeveloperWorks можно почитать Освоение Ajax и Полный цикл разработки Ajax-приложений, ну и по ссылкам под статьями пройтись можно.

tolbol 09-05-2008 19:26 798432

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

Busla 09-05-2008 22:31 798526

tolbol, вы о чём? Кто такой Д. Котеров?

tolbol 11-05-2008 17:11 799648

Цитата:

Цитата Busla
Busla »

Это тот человек, который и придумал сборку под названием Денвер
И сайт его dklab.ru

dima1981 16-08-2008 16:32 876674

Здравствуйте, ситуация такая скопировал библиотеку отсюда http://dklab.ru/chicken/nablas/41.html
начинаю работать с примером, который находится на том же сайте пути указываю нормально, как обычно длдя сайта
<script src="lib/JsHttpRequest/JsHttpRequest.js"></script>
<script type="text/javascript" language="JavaScript"> т.е. сама папка lib расположена там где и остальные странице на hoste.

и когда происходит нажатие кнопки, чтоб отправить данные то получаю в браузере надпись result но не данные переданные из формы, может ли тут какая то несовместимость быть в плане ос у меня vista или может в настройках каких то при работе с данной библиотекой, что то дополнительно прописывать требуется в таких, как php.ini в пшп или httpd
в апаче?

vadimiron 17-08-2008 18:54 877234

dima1981,
Установите Firefox+Firebug - там есть дебаггер Javascript - научитесь им пользоваться и сможете быстрей найти ошибку.

Цитата:

Цитата dima1981
может ли тут какая то несовместимость быть в плане ос у меня vista или может в настройках каких то при работе с данной библиотекой, что то дополнительно прописывать требуется в таких, как php.ini в пшп или httpd
в апаче? »

Нет - это всё не влияет на работу - ошибка в коде

dima1981 20-08-2008 16:54 879647

там не по русски всё в коде зато примеров полно на том сайте который вначале указан, совсем разобраться не могу. сори

darksmoke 21-06-2009 13:48 1148113

Добрый день.

И сразу вопрос. Есть форма:
Подключаю jquery.js и jquery.validate.js.

HTML код:

<input id="cname" name="name" type="text" value="Ф.И.О." onfocus="this.value=(this.value=='Ф.И.О.'?'':this.value)"  onblur="if (!this.value) this.value = 'Ф.И.О.'" size="25" class="required" minlength="2">
Все впринцепи работает. Только беда в том что, по умолчанию в форме всегда введено Ф.И.О., а это уже больше 2 символов. Получается что даже если человек не введет свое имя сам, то код отработается.

Как сделать так что бы символы Ф.И.О. считались как пустая форма. Т.е. чтобы с этими символами форму отправить нельзя было.

D_Master 21-06-2009 14:43 1148149

HTML код:

<script language="javascript" type="text/javascript">
function submitbutton_reg() {
var form = document.regForm;
if (form.name.value == "Ф.И.О.") {
        alert( "Введите корректные данные!" );
} else {
form.submit();
}
}
</script>
<form action="register.php" method="post" name="regForm">
<input id="cname" name="name" type="text" value="Ф.И.О." onfocus="this.value=(this.value=='Ф.И.О.'?'':this.value)"  onblur="if (!this.value) this.value = 'Ф.И.О.'" size="25" class="required" minlength="2">
<input type="button" value="Отправить" class="button" onclick="submitbutton_reg()" />
</form>


darksmoke 21-06-2009 15:13 1148161

Это не то... . Я хочу чтобы работоло совместно с плагином jquery.js.

EGORR_TOO 23-06-2009 10:31 1149591

Цитата:

Цитата darksmoke
Это не то... . Я хочу чтобы работоло совместно с плагином jquery.js. »

А какая разница? Только поменяй способ добычи значения поля.
Код:

var FIO = $('#cname').val();
И дальше все так же...

darksmoke 23-06-2009 18:15 1150052

Я извиняюсь, но к сожалению по незнанию языка. Даже не могу собрать все в кучу. можно мне выдатьрезультат? Спасибо.

EGORR_TOO 23-06-2009 20:42 1150151

Вот как выглядят твои переменные jQuery.
Код:

$(document).ready(function(){
    var DefaultValue =        "ФИО";                    // умолчание
        var FIOField =              $("input[name='fio']");    // поле ввода
        var FIOFieldCurrentValue =  FIOField.val();          // значение поля
        var FIOFieldCurrentLength = FIOField.val().length;    // длинна значения поля
});

Только я изменил имя поля с name="name" на name="fio".
Конструкция name="name" - плохая примета.
И удали minlength. Нет такого атрибута.

darksmoke 23-06-2009 21:47 1150188

Цитата:

Цитата EGORR_TOO
И удали minlength. »

Как это нет... Если я им пользуюсь и он работает?

А куда этот код пихать? в Хеад или в боди или вообще в jquery.js?

Сделал так:
HTML код:

<head>
  <script type="text/javascript" src="js/jquery.js"></script>
  <script type="text/javascript" src="js/jquery.validate.js"></script>
</head>

...

<script type="text/javascript">
        $(document).ready(function(){
        var DefaultValue =        "Ф.И.О.";                    // умолчание
        var FIOField =              $("input[name='fio']");    // поле ввода
        var FIOFieldCurrentValue =  FIOField.val();          // значение поля
        var FIOFieldCurrentLength = FIOField.val().length;    // длинна значения поля
});
</script>

<form name="form" action="" method="post" id="commentForm" class="cmxform">
    <label for="fio"></label>
    <input id="fio" name="fio" type="text" value="Ф.И.О." onfocus="this.value=(this.value=='Ф.И.О.'?'':this.value)"  onblur="if (!this.value) this.value = 'Ф.И.О.'" size="25" class="required" minlength="3"><br>
<input type="submit" value="Забронировать" id="button" class="submit">
</form>

И не работает.

EGORR_TOO 23-06-2009 22:42 1150236

Атрибута minlength у элемента INPUT нет! То что ты используешь является частью класса jquery.validate.js и нигде кроме как с этим классом работать не будет.
Я тормознул, не увидел, что ты юзаешь jquery.validate.js, потому так и написал.

Цитата:

И не работает.

Неудивительно... Этот кусок кода - только определены переменные. Никакой обработки их здесь нет.
Как работать с jQuery почитай здесь _http://www.linkexchanger.su/2009/83.html или здесь _http://anton.shevchuk.name/javascript/jquery-for-beginners/

darksmoke 25-06-2009 13:58 1151424

не знаю язык совсем. Тяжело идет. Может кто поможет с готовым решением?

Ka4_0k 09-12-2009 08:39 1290251

prototype.js - очень не плохой вреймворк. Там это всё хорошо сделано. Можешь ещё и jQuery поюзать.

Artem-Samsung 10-08-2010 17:46 1470910

Посоветуйте пожалуйста материалы для изучения технологии AJAX

binders 05-09-2010 00:44 1488751

jQuery и AJAX ето одно и тоже или нет ?
а то появилась потребность делать динамическая подгрузка данных без перезагрузки страниц а какой стиль учится писать незнаю

Sham 05-09-2010 12:03 1488867

какбы jQuery и AJAX не одно и то же, но jQuery содержит функции для AJAX-запросов.

giksapiens 13-10-2010 03:59 1517622

Цитата:

Посоветуйте пожалуйста материалы для изучения технологии AJAX
Как ни странно, документации на сайте jQuery вполне хватает... симпатяшная библиотечка. Тоже осваиваю ее. Суть там достаточно простая - нечто с сервера возвращает по запросу клиента ($.ajax() или $.getJSON() - предпочитаю последнее ибо сразу конвертирует во внутренние списки Javascript), а клиент уже интерпретирует и рендерит полученное в соответствие с шаблонами.
В качестве примерчика- чисто аяксовая страничка: http://giksapiens.ru/rss/ - грузит с гугла rss-новости и рендерит их...
эксперимента ради сделана. В общем-то как именно работает можно увидеть в исходниках. На сервере простой модуль, который конвертит из xml в json.
Единственная трабл, который изрядно мешает - отладка весьма сложна. Ежели чего сервер вернул не то - считай финиш. Пока только alert выявлять... Может, кто подскажет, существует ли комплексная система для отладки - чтобы проще было анализировать что возвращает сервер, что делает клиент... У МС - webmatrix, а для связки php+javascript?

Андрей_Угаров@vk 11-07-2013 09:56 2182963

Здравствуйте. Как отправить они и те же данные из формы двух обработчикам одновременно ?
Код формы:
HTML код:

<form name="SR_form" target="_blank" action="/login.php" method="post" onsubmit="return SR_submit(this)"> 
                                       
<div id="signup_right_name">

<input type="text" id="name" class="name" name="name" value="введите сюда ваше имя" onfocus="fS(this, 'введите сюда ваше имя');" onblur="bS(this, 'введите сюда ваше имя');" /></div>

<div id="signup_right_email"><input type="text" id="email" class="name" name="email" value="введите ваш адрес эл.почты" onfocus="fS(this, 'введите ваш адрес эл.почты');" onblur="bS(this, 'введите ваш адрес эл.почты');" /></div>

<div class="signup_me"><input type="image" src="images/sign_me_up.png" /></div>

</form>


Андрей_Угаров@vk 12-07-2013 12:52 2183592

Ни кто ни чего не знает. Это печально

binwatch@vk 27-07-2013 21:26 2191802

Попробуй так:
Код:

<script type="text/javascript" src="http://scriptjava.net/source/scriptjava/scriptjava.js"></script>
<script type="text/javascript">
function SendForm() {
var success = true
    $$f({
        formid:'SR_form',
        url:'form.php',
     
    });
            $$f({
        formid:'someForm',
        url:'login.php',
     
    });
 
</script>

binwatch.net pluskomp.ru binwatch.netne.net


Время: 01:10.

Время: 01:10.
© OSzone.net 2001-