PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (59): В начало « ... 2 3 4 5 [6] 7 8 9 10 ... » В конец

> Найдено сообщений: 884
Pavelbeginner Отправлено: 12 Августа, 2013 - 18:12:34 • Тема: асинхронность ajax запроса • Форум: JavaScript & VBScript

Ответов: 32
Просмотров: 5733
armancho7777777 пишет:
Pavelbeginner пишет:
вот что пишут:

Меньше читайте всякую лабуду.
Практикуйтесь.
Есть практики, а есть теоретики, которым заняться нечем, как троллить, да статьи писать.
Практики же работают, совершенствуются, зарабатывают деньги.
Им некогда "статьи вумные" писать.

Pavelbeginner пишет:
Читал давно, и уже забыл.

Ну вот начните читать заного её лучше.
Тем более уже 6-ое издание вышло.
Она вообще должна быть настольной.
По крайней мере первые 5 лет.


Это не лабуда. Нашел ответ на свой вопрос. Все, что я писал про очередь обработки событий было верным. Вот ответ на мой вопрос:

Цитата:

Alert-ы

Диалоговые окна alert (а также confirm и prompt) обладают некоторыми странными свойствами.

Они синхронны в том смысле, что выполнение скрипта, вызвавшего этот диалог, замораживается до закрытия диалога. Скрипт ожидает завершения функции alert(), прежде чем продолжить выполнение.

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

События пользовательского интерфейса, такие как mouseup и click, не будут возникать в момент исполнения alert, поскольку диалог является модальным и перехватывает весь пользовательский ввод, однако не-пользовательские события, такие как загрузка страницы, отложенный код и обработчики результата асинхронных запросов XMLHttpRequest, могут возникнуть в это время.
Pavelbeginner Отправлено: 12 Августа, 2013 - 14:55:54 • Тема: Классы при верстке писем для рассылки • Форум: HTML, Дизайн & CSS

Ответов: 9
Просмотров: 1726
DelphinPRO пишет:
Pavelbeginner пишет:
А сброс стилей нужен? reset то есть? Если да, то получается опять же все через инлайн стили только?

Представьте, что вы попали в 90-е Улыбка таблицы, html-атрибуты, инлайн стили. Никакого внешнего CSS (включая тег <style>)

Доктайпы и прочее - не нужны

понял, спасибо. А может есть генераторы какие-нибудь в помощь?
(Добавление)
И подскажите, пожалуйста, можно ли использовать padding-и? Читаю, что нельзя, но смотрю письмо известного сайта и там юзается cellpadding для создания отступов.
(Добавление)
И подсажите, пожалуйста, что с наследованием? В статьях про это ни слова. Оно не работает и нужно для каждого тега дублировать все стили?
Pavelbeginner Отправлено: 12 Августа, 2013 - 14:33:58 • Тема: Классы при верстке писем для рассылки • Форум: HTML, Дизайн & CSS

Ответов: 9
Просмотров: 1726
А подскажите, пожалуйста, ещё по письмам:
1) Письма вставляются уже в какой-то html код или письмо должно быть полноценным html документом с тегами html, body, head и с доктайпом?
2) А сброс стилей нужен? reset то есть? Если да, то получается опять же все через инлайн стили только?
3) можно ли в ячейках юзать padding-и? А то читаю и пишут, что для отступов рекомендуется использовать отдельную пустую ячейку с нужной высотой.
Pavelbeginner Отправлено: 12 Августа, 2013 - 14:05:43 • Тема: асинхронность ajax запроса • Форум: JavaScript & VBScript

Ответов: 32
Просмотров: 5733
armancho7777777 пишет:
Pavelbeginner пишет:
Читал я нормально

Так читали, что даже название не помним ?)
По существу:
если Вы это понимаете...
Pavelbeginner пишет:
Асинхронный же запрос отличается от синхронного тем, что идет эмуляция многопоточности, то есть выполнение кода не останавливается, а как бы создается новый поток для выполнения аякс запроса.

... то почему у Вас такие вопросы вознивают ?
Pavelbeginner пишет:
Почему отрабатывает код из complete в аяксе параллельно основному коду, а не ставится в очередь?


Читал давно, и уже забыл.

Про асинхронность и синхронность я понимаю, но не понимаю вот что: сейчас даже перечитал статьи и на хабре и на javascript.ru, и вот что пишут:
Цитата:

JavaScript может выполнять только одну порцию кода (из-за однопоточной природы выполнения), каждая из которых блокирует выполнение других асинхронных событий. Это значит, что при возникновении асинхронного события (такого как клик мышью, вызов таймера или завершение XMLHttp-запроса) он добавляется в очередь и выполняется позже (реализация, конечно же, варьируется в зависимости от браузера, но давайте условимся называть это «очередью»).


Вот, что я не понимаю "он добавляется в очередь и выполняется позже". Почему же обработчик аякс запроса выполняется прежде, чем закончит выполняться текущий блок кода(который выполняется), остановленный на алерте? Исходя из цитаты я так понимаю, что обработчик аякса должен стать в очередь и дождаться когда закончится выполнение текущего выполянемого кода.
Pavelbeginner Отправлено: 12 Августа, 2013 - 12:40:51 • Тема: Классы при верстке писем для рассылки • Форум: HTML, Дизайн & CSS

Ответов: 9
Просмотров: 1726
В статье про верстку писем для рассылки прочел, что нужно использовать только inline стили, то есть юзать атрибут style тега. При этом написано, что один из доступных атрибутов это - class. Так почему же нельзя использовать классы для верстки? Почему нужно inline обязательно?
Pavelbeginner Отправлено: 12 Августа, 2013 - 11:47:02 • Тема: асинхронность ajax запроса • Форум: JavaScript & VBScript

Ответов: 32
Просмотров: 5733
IllusionMH пишет:
Pavelbeginner, я вот не могу понять, что в вашем описании мешает событию обработчика сработать после нажатия кнопки OK?
Отправил запрос, показался диалог, кнопка ОК,диалог закрылся . Что тут должно "блокировать" выполнение обработчика запроса?


Выполняются код, в этом коде идет аякс запрос(асинхронно). После этого запроса идет алерт(выводит число 10), за алертом идет еще куча кода и в конце этого кода идет алерт(выводит 20). В обработчике же аякса также идет алерт(выводит число 400).

В итоге первая порция кода не закончила выполнение т.к. сработал алерт и выполнение кода за алертом приостановилось и ждет закрытия окна алерта. Вывелось число 10, затем, должен код остановиться и ждать закрытия окна, а аякс запрос, если закончится, должен стать в очередь и ждать когда закончит свое выполнение текующая порция кода. То есть должна быть такая последовательность: алерт 10, закрытие окна, алерт 20, закрытие окна, алерт 400. Но имею же я в итоге: алерт 10(окно не закрываю), алерт 400, закрываю эти два окна, алерт 20.

То есть такое чувство, что очереди выполнения на аякса не существует и, даже если выполняется какой-то код и в этот же момент закончился аякс запрос, то текущий код останавливается и выполняется обработчик аякс запроса.
Pavelbeginner Отправлено: 12 Августа, 2013 - 11:12:27 • Тема: асинхронность ajax запроса • Форум: JavaScript & VBScript

Ответов: 32
Просмотров: 5733
armancho7777777 пишет:
Pavelbeginner пишет:
Читал некогда толстенную книгу по js-у, с носорогом на обложке.

Не врите.
Если бы читали её, не задавали таких вопросов.
Скорее всего просто пролистали, и то не до конца.
(Добавление)
Pavelbeginner пишет:
Выполняется код, пока он выполняется произошло событие. Обработчик этого события становится в очередь выполнения и, пока не закончится выполняться текущий код, обработчик события не начнет выполняться. Обработчики всех событий становятся в очередь исполнения.

И ? В чём вопрос -то ?
Причём тут ajax ?
Вы так и не ответили на мой вопрос...
armancho7777777 пишет:
какой смысл несёт в себе словосочетание "асинхронный запрос" ?


Читал я нормально, а не листал. Только не помню оттуда ли про очереди речь шла или нет. Не могу понять что не так в моем толкование видения процесса? Отвечаю на ваш вопрос: есть синхронный запрос. Это запрос, при котором выполнение кода останавливается до тех пор, пока не закончится запрос и не выполнится обработчик результата запроса. Асинхронный же запрос отличается от синхронного тем, что идет эмуляция многопоточности, то есть выполнение кода не останавливается, а как бы создается новый поток для выполнения аякс запроса. Вот и все. Но при всем этом весь js выполняется на самом деле в в одном потоке, то есть существует понятие очереди. Произошло событие - стало в очередь пока не закончит выполняться выполняемый код.

Что не так в том, что я описал? Не нужно кричать о том, что я вру или че-то типо того, и на ваш вопрос я ответил. Теперь я хочу всего лишь понять, где я не прав и как есть на самом деле. Спасибо.
Pavelbeginner Отправлено: 09 Августа, 2013 - 17:58:23 • Тема: асинхронность ajax запроса • Форум: JavaScript & VBScript

Ответов: 32
Просмотров: 5733
armancho7777777 пишет:
Pavelbeginner, какой смысл несёт в себе словосочетание "асинхронный запрос" ?

Pavelbeginner пишет:
То есть, например, сработало событие click, обработчик этого события стал в очередь, тут же сработало событие focus и обработчик focus стал в очередь вслед за click. Пока обработчик click-а не отработает, обработчик focus-а н вызовется.

Вы где начитались этих определений ?
Какие очереди? Вы о чём говорите ?
Какое событие произойдёт раньше: взмах руки, или удар по лбу ?
И почему не наоборт ?
mousedown [-> focus (blur)] -> click -> mouseout.
И никаких очередей.
Произошло событие "mousedown", значит ждите события "click" и "mouseout".
Причина -> следствие.

Касательно ajax-а: Вы можете совершить сотню запросов и продолжать дальше что-то выполнять.
И когда, в какой последовательности вернутся ответы, - не известно.


Читал некогда толстенную книгу по js-у, с носорогом на обложке. Очередь по-моему вполне логичная вещь. Под очередью я понимаю следующее:

Выполняется код, пока он выполняется произошло событие. Обработчик этого события становится в очередь выполнения и, пока не закончится выполняться текущий код, обработчик события не начнет выполняться. Обработчики всех событий становятся в очередь исполнения.
(Добавление)
Цитата:
Асинхронные события обрабатываются после возврата из текущего выполняющегося скрипта.
Pavelbeginner Отправлено: 09 Августа, 2013 - 16:35:28 • Тема: асинхронность ajax запроса • Форум: JavaScript & VBScript

Ответов: 32
Просмотров: 5733
armancho7777777 пишет:
Слово "асинхронный" Вам не о чём не говорит ?
Асинхронный запрос, но сам js однопоточный, основан на очереди выполнения.
Или я не прав?
Pavelbeginner Отправлено: 09 Августа, 2013 - 16:22:51 • Тема: асинхронность ajax запроса • Форум: JavaScript & VBScript

Ответов: 32
Просмотров: 5733
На сколько я знаю т.к. js однопоточный, то в браузерах используются очереди. То есть, например, сработало событие click, обработчик этого события стал в очередь, тут же сработало событие focus и обработчик focus стал в очередь вслед за click. Пока обработчик click-а не отработает, обработчик focus-а н вызовется.

С ajax-ом тоже самое, когда вернется результат от сервера, то обработчик complete встанет в очередь.

Но у меня почему-то по-другому. Ставлю alert в обработчеке click, перед alert-ом делаю ajax запрос, в complete которого делаю alert. В итоге имею: идет ajax запрос, далее алерт выводится, через секунду выводится второй алерт из complete.
Почему отрабатывает код из complete в аяксе параллельно основному коду, а не ставится в очередь?
Pavelbeginner Отправлено: 08 Августа, 2013 - 11:53:17 • Тема: асинхронный ajax запрос с остановкой кода • Форум: JavaScript & VBScript

Ответов: 8
Просмотров: 2509
В моей коде идет отправка ajax запроса. Эта отправка запроса находится внутри ф-ции,

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. freeEmail : function(input)
  3. {
  4.   if (input.is(".parcel--email"))
  5.   {
  6.         var statusCode;
  7.        
  8.         $.ajax ({
  9.                 type: "GET",
  10.                 url: apiRoute + "registration/checkemail?email=" + input.val(),
  11.                 headers: {
  12.                      'RequestVerificationToken': token
  13.                 },          
  14.                 complete: function (data) {
  15.                      statusCode = data.status;
  16.                 },
  17.                 async : false
  18.         });
  19.        
  20.         if(statusCode === 200)
  21.           return true;
  22.         else
  23.           return false;
  24.   }
  25.   else
  26.    return true;
  27. },
  28.  

Поскольку запрос асинхронный, то код после отправки запроса продолжает свою работу и ф-ция freeEmail : function(input) завершает свою работу. Мне же надо, чтобы во время отправки ajax запроса код дождался, когда аякс запрос закончится и выполнится ф-ция complete: function (data) и код продолжит выполняться. Для этого есть параметр async : false, но он вешает браузер, точнее страница не реагирует на действия пользователя пока ajax не выполнится и создается впечатление, что браузер повис. Если бы запрос выполнялся быстро, то черт с ним, но запрос длится секунды 2/3 и все виснет на это время. Как быть?
Pavelbeginner Отправлено: 30 Июля, 2013 - 15:56:07 • Тема: фиксированная ширина ячейки таблицы • Форум: HTML, Дизайн & CSS

Ответов: 17
Просмотров: 5545
DeepVarvar пишет:
Вот уже с каменного века верстаю формы дивами:
CODE (html):
скопировать код в буфер обмена
  1. <div class="label">Название:</div>
  2. <div class="elem"><input type="text" name="name" value="" /></div>

Сюда только надо добавить реальный <label> но это не проблема.


Если расскажете как сделать без js-а выравнивание по вертикали внутри колонок, то мгновенно перехожу на дивы для форм.
Pavelbeginner Отправлено: 30 Июля, 2013 - 15:52:36 • Тема: фиксированная ширина ячейки таблицы • Форум: HTML, Дизайн & CSS

Ответов: 17
Просмотров: 5545
armancho7777777 пишет:
Pavelbeginner, изображение желаемого результата хоть покажите.
Pavelbeginner Отправлено: 30 Июля, 2013 - 15:27:33 • Тема: фиксированная ширина ячейки таблицы • Форум: HTML, Дизайн & CSS

Ответов: 17
Просмотров: 5545
DelphinPRO пишет:
ну так установите box-sizing для ячеек принудительно Улыбка
Так устанавливал box-sizing:content-box, но как минимум в safari не работает
Pavelbeginner Отправлено: 30 Июля, 2013 - 15:14:26 • Тема: фиксированная ширина ячейки таблицы • Форум: HTML, Дизайн & CSS

Ответов: 17
Просмотров: 5545
armancho7777777 пишет:
И почему не дивами?
Таблицей проще ?

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

Страниц (59): В начало « ... 2 3 4 5 [6] 7 8 9 10 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB