Зачем какие-то циклы для одной картинки?
Зачем создавать каждый раз новое input поле?
Загрузка выполняется по одному файлу, читай и кладите его в нужный блок для картинок, а работающий input просто сдвигайте, если есть такая необходимость.
Если вставки идут с ваших серверов, вы можете явно передавать размеры через src и на стороне сервера обрабатывать.
Если нужна просто динамическая вставка, тогда можно вот так https://www.w3schools.com/code/tryit.asp?filename=...
Рамки задает контейнер, а фрейм абсолютный
приемлемый вариант: Измените запрос в базу для catalog\model\catalog\product.php метод getProductSpecials();
вариант похуже: брать все и при возвращении данных перемешать product_data
Задайте себе пару простых вопросов, зачем длительное время держать соединение для события которое может никогда не случиться и зачем такие сложности для событий которые не ожидают никаких колбеков.
а как вы понимаете полный ввод?
событие onchange и так срабатывает после полного ввода (часы и минуты). https://codepen.io/anon/pen/MNeGGR
вы не можете предсказать какое число хочет указать пользователь.
решение: отслеживать потерю фокуса или меняйте тип на select
Личное мнение.
Если нужно что-то подобное на веб, в таком случае react отличное решение.
Если приложение очень сильно завязано на API устройства (работа с телефонией, wifi, gps и т.д.) в таком случае лучше чисто нативное приложение.
у каждой функции свой контекст (свой this)
setTimeout(function() {}); - ничего не знает о (1) и (2) по этому и выносят в переменные или в некоторых случаях используют стрелочные функции.
entermix, говорят, не используйте в потоке своей программы иначе все зависнет. Скидываете информацию и сами противоречите правилу. Вы свой код выполняете в одном потоке (ждете ответ завершения всего кода).
Независимый код, должен работать независимо от всего остального процесса.
в одном потоке работает процесс exec и кладет результат в файл, другой независимый процесс читает это все из файла
Речь идет об амперсанде &, он позволят добавлять задачи в фон.
Но, выполняются они только после того как завершатся все ранее поставленные задачи.
Для примера sudo update & upgrade, первым будет выполнен update и только после его полного выполнения будет запущен upgrade (работает не параллельно).
entermix, exec не выполняется асинхронно в фоне, он ждет callback, пока процесс не освободится (код не выполнится до конца).
приведу простой пример из сети.
выполняя через терминал команду ping -n 30, блокируется возможность ввода каких-либо команд, пока процесс полностью не завершится или не произойдет какая-то ошибка.
В вашем случае sleep(30) вешает весь поток на указанное время.
php выполняет код синхронно.
Вы говорите остановиться и ждать 30 секунд (sleep(30)), весь поток и замирает.
Может лучше использовать для ваших задач cron?
Зачем такие ужасные костыли?
Человеку нужно просто узнать есть ли такой ip в его базе, это решается на уровне запроса sql.
Если уж хочется усложнить, есть функция in_array($ip, $query); которая проверит массив на значения и вернет true / false php.net/manual/ru/function.in-array.php