• Почему не работает clearTimeout?

    @tryvols Автор вопроса
    Front-End разработчик
    Почему так происходит я не разобрался, но решением стало изменение подхода. Заюзал асинхронщину)

    export function delay<T>(ms: number, value?: T): Promise<T> {
        return new Promise((resolve) => setTimeout(() => resolve(value), ms));
    }


    import { injectable } from 'inversify';
    import { TimerCallback, ITimer, DelayCalculator } from '../types/timer';
    import { delay } from '../../../helpers/delay';
    
    @injectable()
    export default class Timer implements ITimer {
        private readonly _startDelay: number;
        private _enable: boolean;
        private counter: number = 0;
    
        constructor(
            private _delay: number,
            private _nextDelay: DelayCalculator,
            private _callback?: TimerCallback,
        ) {
            this._startDelay = _delay;
        }
    
        public setCallback = (callback: TimerCallback): void => {
            this._callback = callback;
        }
    
        public enable = (): void => {
            if (!this._callback) {
                throw Error('Callback is required for the Timer!');
            }
    
            this._enable = true;
            this._tick();
        }
    
        public disable = (): void => {
            if (!this._enable) {
                console.warn('You trying to disable timer which is not enabled.');
                return;
            }
            this._enable = false;
        }
    
        public reset = (): void => {
            this.disable();
            this._delay = this._startDelay;
        }
    
        private _tick = async (): Promise<void> => {
            await delay(this._delay);
            if (this._enable) {
                this._callback();
                this._delay = this._nextDelay(this._delay);
                await this._tick();
            }
        }
    }
    Ответ написан
    Комментировать
  • VueJS: минусы компонентной структуры?

    @tryvols
    Front-End разработчик
    Все зависит от требований к структуре. В зависимости от них определяется ключевой параметр относительно которого проектируется структура. Ваша структура ориентирована на включение, недостатком таковой является путаница в случаях когда компоненты/модули пересекаются в дереве, к примеру когда 2 ветки используют один и тот же компонент. То есть у этой структуры есть ограничения расширяемости. Я больше предпочитаю структуру ориентированную на зоны ответственности. То есть это горизонтальная структура. Ее основной недостаток - полотно файлов и папок в обозревателе, так что без вкраплений иерархических структур папок так же не обойтись(стоит 100 раз обдумать). С другой стороны она позволяет легко ориентироваться в функциональных модулях системы и группировать внутри папки с модулем ее функционал(не выходит за рамки задачи модуля, тесно связан между собой).
    Ответ написан
  • Использование ЧПУ в Vue Router?

    @tryvols
    Front-End разработчик
    https://gist.github.com/diolavr/d2d50686cb5a472f5696
    Тут решение для транслитерации, в роутере создаёте роут по типу articles/:slug, затем в удобном для вас месте генерирует ссылки при помощи этой либы в зависимости от того где вы получаете список статей с сервера.
    Ответ написан
    Комментировать
  • Почему webpack не видит шрифты?

    @tryvols Автор вопроса
    Front-End разработчик
    На помощь тем у кого возникла подобная проблема, пишу найденное решение. Суть ответа на вопрос заключается в том, что в шаблоне для vue под названием webpack не добавляется лоадер для парсинга шрифтов из vue файла, в то время, как шрифты можно подключить в js-файлы(main.js, к примеру)
    Ответ написан
    Комментировать
  • Почему vue игнорирует этот компонент и не выводит его?

    @tryvols Автор вопроса
    Front-End разработчик
    Все, понял, я просто случайно вызвал вычисляемое свойство вместо того что бы передать его. Странно только что ошибки не было.
    Кстати говоря, почему vue или webpack не выдал ошибку?
    Ответ написан
  • Как получить значение 1-й ячейки из строки с выбранной ячейкой DataGrid?

    @tryvols Автор вопроса
    Front-End разработчик
    Companies.adapter.Update((System.Data.DataSet)grid.ItemsSource);
    выдает ошибку преобразования, как ее справить?
    Ответ написан
    Комментировать
  • Как привязать отображаемые данные в DataGrid(wpf) к БД?

    @tryvols Автор вопроса
    Front-End разработчик
    Решение оказалось таковым.
    private void initializeTimer()
            {
                var dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
                dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
                dispatcherTimer.Interval = new TimeSpan(0, 0, 5);
                dispatcherTimer.Start();
            }
    
            private void dispatcherTimer_Tick(object sender, EventArgs e)
            {
                Companies.companies.Clear();
                Companies.Get();
                grid.Items.Refresh();
            }

    static class Companies
        {
            public static System.Data.DataSet companies = new System.Data.DataSet();
    
            public static System.Data.DataView Get()
            {
                User.connect.Open();
                MySqlCommand cmd = new MySqlCommand("SELECT * FROM data", User.connect);
                MySqlDataAdapter adapter = new MySqlDataAdapter();
                adapter.SelectCommand = cmd;
                adapter.Fill(companies);
                User.connect.Close();
                return new System.Data.DataView(companies.Tables[0]);
            }
        }
    Ответ написан
  • Как сохранить отображение папок в php?

    @tryvols
    Front-End разработчик
    Берешь файл и загоняешь туда карту сайта, лучше всего это сделать в виде JSON. json_decode() разматываешь данные в массив, если нужно изменить - меняешь, и записываешь обратно в файл, предварительно завернув обратно в json функцией json_encode().
    Ответ написан
    Комментировать
  • Где разместить рекламу в расширении?

    @tryvols
    Front-End разработчик
    Как Taraflex подметил - это действительно перебор. И даже если захочешь разобраться с обходом политики расширений, тебе придется подключать прокси сервер, что бы перехватывать страницы загружаемые пользователями. И даже не это самое больное место. Обновления браузеров начинают включать в себя встроенный блокировщик рекламы:
    playlife.info/614-blokirovschik-reklamy-teper-vstr...
    По этому не морочь себе и людям голову)
    Ответ написан
    Комментировать
  • Как задать скриптом размер квадрата в Unity и разместить его относительно левого верхнего угла(android 2d)?

    @tryvols Автор вопроса
    Front-End разработчик
    using UnityEngine;
    using System.Collections;
    
    public class Block_Script : MonoBehaviour {
    
    	private GameObject block;
    
    	private float paddingHeight = Screen.height / 100 * 20,
    				padding = Screen.width / 100 * 5,
    				width = Screen.width / 100 * 19;
    
    	private float	paddingTop;
    	private float 	paddingLeft;
    
    	// Use this for initialization
    	void Start () {
    
    	}
    	
    	// Update is called once per frame
    	void Update () {
    	
    	}
    
    	void OnGUI () {
    		paddingTop = paddingHeight + padding;
    		paddingLeft = padding;
    
    		for (int i = 0; i < 16; i++) {
    
    			if (i % 4 == 0) {
    				paddingTop += padding + width;
    				paddingLeft = padding;
    			}
    
    			if (GUI.Button (new Rect (paddingLeft, paddingTop, width, width), "")) {
    				print ("You clicked me!");
    			}
    
    			paddingLeft += padding + width;
    		}
    		
    	}
    }
    Ответ написан
    Комментировать
  • Что вызывает баг в программе?

    @tryvols Автор вопроса
    Front-End разработчик
    все куда проще оказалось. пока шла задержка - цикл продолжал свои итерации, и потому переменная неадекватно получала значение, из чего следует вывод, что данная реализация не подходит. Правильное решение состоит в реализации скрипта через setInterval(), т.к. он имеет свой цикл. Таким образом мы получаем слаженность в работе кода и цикла.
    Ответ написан
    Комментировать
  • В чем загвоздка инлайн-инсталляции?

    @tryvols Автор вопроса
    Front-End разработчик
    я уже разобрался) там в документации есть маленькое отступление) это можно реализовать только на проверенных и зарегистрированных сайтах в Гугле)
    Ответ написан
    Комментировать
  • Как изъять на свою страницу данные с другого сайта?

    @tryvols Автор вопроса
    Front-End разработчик
    загвоздка в том, что Chrome API не предусматривает использование php.
    Ответ написан
    Комментировать