@android_ru

Страница 106 из 3205
Andrey
28.08.2016
09:12:49
Зачем тебе в яве Handler-ы?
Не нужно сравнивать синхронные и асинхронные языки.

Maxim
28.08.2016
09:13:07
в целом то все в одном потоке происходит

но например xhr запросы выполняются асинхронно по умолчанию

Andrey
28.08.2016
09:13:30
эммм, что ты имеешь ввиду под асинхронным кодом? )))
f1(); f2(); Функции запустятся одновременно.

Google
Maxim
28.08.2016
09:13:34
setTimeout вызывается асинхронно

ну собственно и все

Andrey
28.08.2016
09:13:42
Ну или почти одновременно.

Maxim
28.08.2016
09:14:07
Ну или почти одновременно.
нут, если ты в первой сделаешь while(true) то вторая не запустится )

Andrey
28.08.2016
09:15:23
нут, если ты в первой сделаешь while(true) то вторая не запустится )
Так. Я начал путаться. Давай вспомним твой код. у тебя есть field.focus() callback() Фокус гарантированно выполнится раньше?

Maxim
28.08.2016
09:15:35
ага

пока вся эта функция не отработает проба вставки не произойдет

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

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

Andrey
28.08.2016
09:19:11
ага
Тогда если код синхронный и всё выполняется последовательно, я не понимаю, зачем нужно делать сеттаймаут.

Maxim
28.08.2016
09:19:17
серверный node.js тоже красотка )

Andrey
28.08.2016
09:20:13
А так же парсинга различными IDE

Google
Maxim
28.08.2016
09:24:07
и что в этом сложного? )

Andrey
28.08.2016
09:25:09
И как читать эту блок-схему?

Maxim
28.08.2016
09:25:29
ясно ты издеваешься надо мной )

спасибо

Andrey
28.08.2016
09:26:47
Нет, я правда хочу разобраться. На неjs это было бы типа такого: insertText(); callback();

Вот я блок "наша функция" - не понимаю. Как читать такие переходы?

Maxim
28.08.2016
09:27:45
Нет, я правда хочу разобраться. На неjs это было бы типа такого: insertText(); callback();
insertText нет такой функции в браузерах, на сервере или в твоем совственном браузере возможно )

Andrey
28.08.2016
09:28:10
Maxim
28.08.2016
09:28:25
Andrey
28.08.2016
09:28:57
и как ты ее напишешь? )
Не знаю, но я не буду создавать отдельный поток в таком коде, чтобы она вызвалась когда мне это надо.

Maxim
28.08.2016
09:29:10
единственный способ вставить текст в браузерах из буфера обмена это пользователю самому это сделать ну например нажать ctrl+v

Maxim
28.08.2016
09:29:49
это браузерные ограничения но суть в том что они обходятся вот так вот легко при определенных соглашениях

Andrey
28.08.2016
09:30:21
Объясни как читать твою блоксхему?

Maxim
28.08.2016
09:30:41
я уже устал )

Andrey
28.08.2016
09:30:45
Потому что я из этой схемы вижу, что код должен выполняться в обратном порядке.

До самого начала.

Maxim
28.08.2016
09:31:07
у нас в универе был препод, который говорил что js это умирающий язык и призывал использовать везде JSF при этом )

ну еще говорил что за флешем будущее )

Google
Andrey
28.08.2016
09:31:40
И к чему это?

Andrey
28.08.2016
09:32:06
схема как обычно читается сверху вниз
А твоя стрелка что значит?

Читать в обратном порядке?

Maxim
28.08.2016
09:32:24
Andrey
28.08.2016
09:34:18
она подписана
Вот у тебя есть блок ветвления. Какую ветку мне читать? Я не понимаю такого раздвоения.

Я не издеваюсь, я просто тебя понять не могу.

Maxim
28.08.2016
09:34:48
Вот у тебя есть блок ветвления. Какую ветку мне читать? Я не понимаю такого раздвоения.
ты можешь написать сразу и так и так, стрелкой показан переход в новый поток о чем есть подпись

Andrey
28.08.2016
09:35:11
ты можешь написать сразу и так и так, стрелкой показан переход в новый поток о чем есть подпись
Т.е. ветвление - это создание нового потока, который выполняет сразу последний блок?

Maxim
28.08.2016
09:36:17
Там написано "пропусскаем основной поток".
ну да, после окончания обработчика сразу произойдет попытка вставки браузером, нам нужно пропустить этот момент чтобы считать уже вставленное значение

Т.е. ветвление - это создание нового потока, который выполняет сразу последний блок?
ну относительно сразу )) после того как закончится событие

Andrey
28.08.2016
09:37:49
Ладно, я ничего не понимаю. Думаю, что есть смысл прекратить.

Maxim
28.08.2016
09:38:40
Ладно, я ничего не понимаю. Думаю, что есть смысл прекратить.
Яваскрипт - однопоточный язык программирования. однако, в нём есть поддержка отложенного выполнения, когда мы устанавливаем обработчик события timeout и выходим из программы. При этом можно повесить несколько обработчиков, образующих конкурентную очередь выполнения. Эта их особенность и позволяет реализовать многопоточность в текущих версиях яваскрипта.

это не физические потоки, а программные

одновременно ниче не происходит

Andrey
28.08.2016
09:41:19
Яваскрипт - однопоточный язык программирования. однако, в нём есть поддержка отложенного выполнения, когда мы устанавливаем обработчик события timeout и выходим из программы. При этом можно повесить несколько обработчиков, образующих конкурентную очередь выполнения. Эта их особенность и позволяет реализовать многопоточность в текущих версиях яваскрипта.
Вот это понятно. Но тогда возникает вопрос - зачем делать 1 setTimeout в функции? Если их несколько, то это понятно. Возможно нужно обрабатывать 2 события одновременно. Так же мне не понятна нужность колбеков. Почему во многих местах нужно писать doSmth(data, callback); А не doSmth(data); callback();

Maxim
28.08.2016
09:42:29
var res = null; doSmth(data, function(result) {res=result; console.log(res)}); console.log(res);

в консоли будет сначала null а потом значение

Google
Maxim
28.08.2016
09:44:11
ты ж в яве тоже делаешь например OnMapReadyListener

только выглядит это немного по-другому )

Andrey
28.08.2016
09:44:22
Т.е. основная проблема в том, что все на всё создают потоки?

Потому что $(query).hide(speed, callback); мне не понятен. Я не вижу смысла делать hide асинхронным.

Maxim
28.08.2016
09:45:17
Т.е. основная проблема в том, что все на всё создают потоки?
ну это скорее связано стем что у всех есть потребность обращаться за данными через http например )

Andrey
28.08.2016
09:45:47
Maxim
28.08.2016
09:46:18
Потому что $(query).hide(speed, callback); мне не понятен. Я не вижу смысла делать hide асинхронным.
если аниманию запустить в оном потоке то заблокируется весь интерфейс пока она не кончится, кроме того в анимации используются таймауты которые так или иначе создают отдельный поток

Maxim
28.08.2016
09:47:29
ты ж пишешь в анимации setTimeout(function() {el.height(el.height()-10)}, 200)

Admin
ERROR: S client not available

Maxim
28.08.2016
09:47:53
setTimeout запускает поток для выболнения через указанное время

Andrey
28.08.2016
09:48:17
ты ж пишешь в анимации setTimeout(function() {el.height(el.height()-10)}, 200)
Почему это не написать без таймаута?

Andrey
28.08.2016
09:48:42
как? )
Просто убрать обёртку.

Maxim
28.08.2016
09:48:55
Andrey
28.08.2016
09:49:22
пример )
el.height(el.height() - 10)

Maxim
28.08.2016
09:50:09
el.height(el.height() - 10)
так тебе надо чтоб это не сразу произошло а через определенное время

в этом жде смысл анимации

Marat
28.08.2016
09:50:32
?

анимация которая запускается через n-ное время после действия пользователя?

Google
Marat
28.08.2016
09:51:05
т.е. нажал я на кнопку, например

Andrey
28.08.2016
09:51:16
Marat
28.08.2016
09:51:19
подождал 2 секунды и только потом она начала скрываться к примеру

тоже самое у тебя и со вставкой текста

Andrey
28.08.2016
09:52:06
так тебе надо чтоб это не сразу произошло а через определенное время
Мне не совсем понятно зачем это в отдельный поток выносить. Просто while(true). Это же всё равно не в основном потоке выполняется.

Maxim
28.08.2016
09:52:14
анимация которая запускается через n-ное время после действия пользователя?
fn = function() {setTimeout(function() {el.height(el.height()-10); if(el.height()>0) fn();}, 100)} fn();

вот полный пример анимации скрытия

if(el.height()>0) fn() else callback();

= )))

Marat
28.08.2016
09:52:59
она выполняться 100ms может будет? так было бы логичнее

а не запускаться через 100ms

Maxim
28.08.2016
09:53:44
а не запускаться через 100ms
выполняться оно будет не 100 мс а через каждые 100 будет уменьшаться высота

Marat
28.08.2016
09:53:46
и в этом примере тоже не нужно асинхронно код запускать

у тебя до этого последовательно выполняемый код потому что

Maxim
28.08.2016
09:54:20
о хоспади ) я пошул делами заниматься )

Alexander
28.08.2016
09:58:25
Градл джедай, расскажи в 2х словах про градл 3.0, что революционно нового? Стоит ли попробовать и перейти?
В целом там всё круто. Основное по умолчанию демон включили по–этому у тех кто не тюнил производительность со старта сборки будут немног быстрее и улучшение интеграции c IDE(автодополнение, подсказки, всё такое). Начали переход на котлин начали переходить, в конце года вроде как сменят основной язык написания билд скриптов с груви на котлин + улучшили кучу вещей, поправили кучу багов.

Кстати лучше всего улучшили поведение демона на windows, я последних 4 года винду не юзал по этому тем чувакам кто на винде и жаловались на скорость сборки гредла даже с включенным демоном, строго рекомендуется попробовать. Но только когда android плагин начнёт поддерживать ?

из новинок ещё гредловые скрипты jdk 9 теперь поддерживают также, но то такое. Мало кому будет интересно думаю

Alexey
28.08.2016
10:08:56
Задача с подвохом ? текст напечатает я думаю
Все верно, он же статик, поэтому метод show отработает. Я уже как-то лажанул на собеседовании м такой задачей

Alexander
28.08.2016
10:10:57
рано, лучше вместе с плагином гугловым апаться

Страница 106 из 3205