• Как оптимизировать алгоритм поиска кратчайшего пути?

    Writerim
    @Writerim
    Заполнить позже...
    ну вам надо знать координаты объектов и просчет пути.
    Ответ написан
    Комментировать
  • Как настроить программу воспроизвидения?

    Формат файла не имеет значения, поскольку является лишь контейнером для потока данных. А то каким кодеком сжато - имеет.
    Есть кодеки, которые "жрут" ресурсы процессора больше, чем другие. Скажем, H.265 / HEVC кушает больше, чем H.264.
    What is the difference between HEVC (H.265) and H....
    Computationally expensive (~ 300 % + ) due to larger prediction units and expensive Motion Estimation (Intra prediction with more nodes, asymmetric partitions in Inter Prediction).


    Тормоза могут выражаться в меньшем FPS. Это может зависеть как от реализации кодека в используемом софте, так и в поддержке необходимых аппаратных инструкций процессора для ускорения декодирования.

    Тормоза также могут быть вызваны "битым" потоком данных, из-за чего программе нужно восстанавливать данные или делать какие-то дополнительные манипуляции.
    Ответ написан
    Комментировать
  • Как настроить программу воспроизвидения?

    @vilgeforce
    Раздолбай и программист
    Обращайтесь к разработчикам софта.
    Ответ написан
    Комментировать
  • Как правильно сделать декомпозицию строки?

    @GreatRash
    А вообще код уродский. Ну вот что мешало программисту написать if?

    if (this.iid) clearInterval(this.iid);

    и возможно вы бы даже не полезли спрашивать сюда про код.
    Ответ написан
    Комментировать
  • Как правильно сделать декомпозицию строки?

    И (&&) запинается на «лжи».
    Т.е. данная инструкция вернет this.iid, если это значение при приведении к булевому типу вернет false или же вернет значение глобального метода clearInterval (метод ничего кажется не возвращает)
    По-другому можно сказать так: если this.iid (в данном контексте идентификатор таймера) существует, то тогда запускаем clearInterval с этим параметром (останавливаем функцию, запускаемую через setInterval)
    Ответ написан
    Комментировать
  • Как правильно сделать декомпозицию строки?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    iid - видимо сокращение от interval id
    Суть написаного в следующем:
    1. Проверяем наличие this.iid
    2. В случае если он есть очищаем интервал с этим id.
    Ответ написан
    Комментировать
  • Правильна ли трактовка кода?

    dunmaksim
    @dunmaksim
    Технический писатель
    Всё несколько проще. Вместо "ассоциативный массив" всегда говорите "объект".

    /* Глобальная переменная - лучший друг быдлокодера */
    var map;
    
    /* Создадим с помощью конструктора новый объект */
    var brooklyn = new google.maps.LatLng(40.6743890, -73.9455);
    
    /* Так обычно объявляют константы (до ECMA 2015 нормального синтаксиса не было) */
    var MY_MAPTYPE_ID = 'Purple';
    
    // Обычно такую телегу записывают так (шаблон One-var template, привет, Pascal!):
    var map,
    	  brooklyn = new google.maps.LatLng(40.6743890, -73.9455),
    	  MY_MAPTYPE_ID = 'Purple';
    
    /* Декларируем функцию */
    function initialize() {
    	/* Создаём массив объектов */
        var featureOpts = [
    		{ // Раз
    			stylers: [ //И сразу вложенный объект с полем-массивом объектов
    				{ hue: '#6b20a1' },
    				{ visibility: 'simplified' },
    				{ gamma: 0.5 },
    				{ weight: 0.5 }
    			]
    		}, { // Два
    			elementType: 'labels',
    			stylers: [ // Вложенный массив
    				{ visibility: 'on' }
    			]
    		}, { // Три
    			featureType: 'water',
    			stylers: [
    				{ color: '#6b20a1' }
    			]
    		}];
    } // Закрывающую скобку кто ставить будет, я что ли?
    Ответ написан
    Комментировать
  • Как правильно понять этот сложный код?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Учи матчасть...

    /* Функция асинхронной загрузки хеадера */
    function getHeader() {
      $.post('modules/constructor.php',     /* Аппелируем к серверному скрипту по указаному адресу */
          { 'action': "header", 'lang': lang },   /* Передаем параметры на сервер */
           function(data) {                            /* Callback - параметр анонимня функция. Вызывается при удачном запросе */
              $('div#header')                          /* Выбираем #header - но правильнее $('#header'), ибо 2 блока с одним id не правильно */
                 .empty().append(data);           /* Очищает выбраный блок и дописывает к нему полученные данные */
           	}
          ).done(function() {                         /* Событие выполняется после удачного выполнения запроса */
            getFooter()                                 /* Вызов запроса Fotter */
          })
    }
    
    /* далее аналогично но для footer */
     
    function getFooter() {
      $.post('modules/constructor.php',    
          { 'action': "footer", 'lang': lang },    
           function(data) {                            
              $('#footer').empty().append(data); 
           	}
          ).done(function() {
            getScriptHandF();              /* Здесь была синтаксическая ошибка: отсутствие замыкающего ";" */
            getContent(content)
          })
    }
    function getContent(cont) {
      $.post('modules/constructor.php', 
          { 'content': cont, 'lang': lang, 'device': devi },
           function(data) { 
              $('#content-wrapper').empty().append(data); 
           	}
          ).done(function() {
    
    /* Далее человек питался сделать прелоадинг картинок. НО! */
    /* Картинки уже начались загружатся после  выполнения
     колбеков из загрузок getContent, getHeader, getFoоter */
            var paths  = [];                  /* Готовим массив для прелоадинга картинок */
            var images = $('body').find('img');    /* Выбираем все картинки */
            images.each(function() {                  /* Пробегаемся по всем картинкам */
              paths.push($(this).attr('src'));          /* Записываем ссылку на картинку в масив */
            });
             
            preloadImages(paths, function () {   /* Вызывает preloadImages Описания процедуры нет */
              $("html,body").animate({"scrollTop":0},200);  /* Анимирует скроллинг если страница прокручена на верх страницы */
              $('#preload').fadeOut(1000);   /* Анимирует прозрачность кроющего блока #preload */
              getScript();                              /* Вызывает getScript */
              if (cont=="home") getSlider(); /* Вызывает getSlider если страница домашняя */
            });
          })
    }
    Ответ написан
    2 комментария
  • Как правильно понять сей код?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    function historyLoad() {
    	// History - это какая-то обертка над History API, что возвращает метод getState точно неизвестно
    	var State = History.getState();
    
    	// Просто логирование
    	History.log('initial:', State.data, State.title, State.url);
    
    	// Показывается прелоадер
    	$('#preload').fadeIn(200);
    
    	// Если последний символ в url слеш, то:
    	// 1. изменяется глобальная переменная content
    	// 2. выполняется функция getHeader
    	// 3. функция завершает работу
    	if ("/" == State.url.slice(-1))
    	{
    		content = "home";
    		getHeader();
    		return;
    	}
    
    	// Разбиваем url по знаку вопроса (забыли var)
    	str = State.url.split('?');
    
    	// Берем часть после знака вопроса (забыли var)
    	strSplit = str[1];
    
    	console.log(strSplit);
    
    	// Разбивает часть после знака вопроса по амперсанду (забыли var)
    	l = strSplit.split('&');
    
    	// Если есть что-то между знаком вопроса и первым амперсандом
    	if (l[0])
    	{
    		// В зависимости от того, что находится перед первым амперсандом
    		switch (l[0])
    		{
    			case "en":
    			case "ru":
    			case "ua":
    				// изменяем глобальную переменную lang
    				// вызываем функцию getHeader
    				lang = l[0];
    				getHeader();
    				break;
    			default:
    				// если первый элемент перед амперсандом не en, ru или ua:
    				// 1. изменяется глобальная переменная content
    				// 2. выполняется функция getHeader
    				content = "abra";
    				getHeader();
    				break;
    		}
    
    		if (l[1] && undefined != l[1])
    		{
    			// Если что-то есть между первым и вторым амперсандами (ну или просто после первого, если других нет),
    			// записываем эту строку в глобальную переменную content
    			content = l[1]
    		}
    	}
    	else
    	{
    		// Вызывем функцию getHeader
    		getHeader();
    	}
    }
    
    // Выполняем функцию при старте страницы
    historyLoad();
    
    // слушаем изменение url страницы, используя обертку над History API и выполняем функцию historyLoad
    History.Adapter.bind(window, 'statechange', function () { // Note: We are using statechange instead of popstate
    	// Log the State
    	historyLoad();
    });


    Ну а вообще, Виталий Пухов прав - ничего особенного в этом коде нет, после месяца изучения js (то есть синтаксис вы уже хорошо понимаете) спокойно можно разбираться, декомпозируя код на небольшие куски.
    Ответ написан
    Комментировать
  • Как правильно понять этот код?

    function preloadImages() {
        // создаем функцию с помощью Function declaration (инструкции объявления функции)
        // как бы говорим интерпретатору "создай функцию и помести ее в переменную preloadImages"
        if (typeof arguments[arguments.length - 1] == 'function') {
        // в javascript нет "перегрузки" функций, функция может принимать сколько угодно значений
        // доступ к переданным аргументам можно осуществить через "псевдо-массив" arguments
        // arguments.length - возвращает количество переданных аргументов
        // в arguments можно обращаться к аргументу по номеру
        // arguments[arguments.length - 1] - последний параметр функции
        // typeof x - возвращает строку, содержащую информацию о типе операнда x
        // в конечном счете проверяется, является ли последний переданный аргумент функцией
            var callback = arguments[arguments.length - 1];
        // копируем ссылку на эту функцию в переменную callback
        // эта переменная еще в момент вхождения интерпретатора в функцию preloadImages поднимется и будет 
        // в лексическом окружении (LexicalEnvironment) функции
        } else {
            var callback = false;
        // иначе остаемся без коллбэка
        }
        if (typeof arguments[0] == 'object') {
        // если первый аргумент функции является объектом (всё, кроме чисел, строк, true, false, null, undefined)
        // здесь, видимо, мы ждем в первом параметре массив изображений
        // вызов вида preloadImages(['img1.jpg',..., 'imgN.jpg'])
            var images = arguments[0];
        // копируем ссылку из первого аргумента-объекта в переменную images
            var n = images.length;
        // записываем количество элементов в массиве в переменную
        } else {
        // если первый аргумент не объект,
        // скорее всего, на входе ждем список строк-урл картинок
        // preloadImages('img1.jpg',..., 'imgN.jpg')
            var images = arguments;
        // здесь уже копируем ссылку на весь список аргументов
            var n = images.length - 1;
        // записываем в переменную n количество параметров с вычетом одного,
        // видимо, задумывалось, что последним аргументом будет функция-callback
        // иначе последнее изображение не обработается
        }
        var not_loaded = n;
        // временная переменная, количество незагруженных изображений
        for (var i = 0; i < n; i++) {
        // обычный цикл с инкрементом на каждой итерации
            jQuery(new Image()).attr('src', images[i]).load(function() {
        // new Image() - создаем HTMLImageElement, 
        // jQuery(new Image()) - делаем из него jquery объект для возможности работы с ним с помощью методов jquery
        // .attr('src', images[i]) - проставляем объекту атрибут src, что сразу запустит загрузку изображения
        // load(function() { - и привяжемся к событию load изображения
                if (--not_loaded < 1 && typeof callback == 'function') {
        // сначала уменьшаем, потом сравниваем с 1 нашу временную переменную
        // отлавливаем когда у нас все изображения загрузятся,
        // порядок загрузки не важен тут
        // и если в переменную callback попала функция, то
                    callback();
        // вызываем ее
                }
            });
          }
        }
    Ответ написан
    1 комментарий
  • Как правильно понять этот код?

    @iissakin
    Сначала проверяются параметры, переданные в функцию: если последний параметр - функция, то она будет позже вызвана при загрузке изображений. Если нет, то изображения просто загрузятся.
    В качестве первого параметра ожидается массив со ссылками на изображения, которые будут потом записаны в атрибут src новых dom-элементов img.

    upd: колбек будет вызван, видимо, только после загрузки последнего изображения.
    Ответ написан
    1 комментарий
  • Как сделать вставку дива в динамически создаваемую html разметку?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Вы должны этот див добавлять внутри вашей функции renderWorked
    Ответ написан
    4 комментария
  • Как сформировать html из json?

    @aLLyofgod
    "укажЫте" — вот тут допустил. Правильно "укажИте". "жи и "ши" пиши с буквой "и".

    А вообще, тебе даже подсветка синтаксиса подсказывает в чем дело.
    ...
    {'Wraper': '1','img image-data': 'P5dasJ51AU', 'data-alt-src':'T0Yd1sdA5k_h.jpg', 'image-data': '5n_aW-asIQ0', 'title': 'Digital <br> As179 }]; 
    ...

    Тут забыл кавычку:
    {'Wraper': '1','img image-data': 'P5dasJ51AU', 'data-alt-src':'T0Yd1sdA5k_h.jpg', 'image-data': '5n_aW-asIQ0', 'title': 'Digital <br> As179' }];


    Что такое:
    var containered = $('.works blocks'), html = [], i, item;

    Может быть:
    var containered = $('.works .blocks'), html = [], i, item;


    Ну и в конце скобку не там поставил
    console.log( containered).html(html.join(''));
    Надо
    console.log( containered.html(html.join('')));

    Плюс, ты вызываешь функцию renderWorks, хотя подразумевашь renderWorked
    renderWorked(workItemsed);
    Ответ написан
    3 комментария