• Как узнать куда, пошел пользователь back или forward в событии popstate?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    window.addEventListener('popstate', function (e) {
    	var id = e.state ? e.state.count : localStorage.id - 1,
    		dir = id - localStorage.id;
    
    	console.log('Переход ' + (dir > 0 ? 'вперёд' : 'назад') + ', шагов: ' + Math.abs(dir));
    	localStorage.id = id;
    }, false);
    
    document.addEventListener('click', function (e) {
    	var number = Math.round(Math.random() * 1000);
    
    	localStorage.id = (parseInt(localStorage.id) || 1) + 1;
    	history.pushState({
    		count: localStorage.id
    	}, 'title ' + number, '?page=' + number);
    }, false);
    Ответ написан
    Комментировать
  • Как убрать подсказки перед параметрами вызовов методов в Phpstorm?

    delphinpro
    @delphinpro Куратор тега PhpStorm
    frontend developer
    20170505-231216.png
    Ответ написан
    Комментировать
  • Как преодолеть NAT (webrtc)?

    Если кратко, то существуют 4 вида NAT-а, которые нужно как-то преодолевать, 3 из них лекго преодолеваются при помощи STUN-серверов (они используются только в момент соединения пиров друг с другом - то-есть весь трафик через них не идет, есть куча бесплатных stun-серверов), четвертый - самый проблемный, под него подпадают примерно 15% всех peer-to-peer соеднинений в Интернете - это так называемый двойной NAT (когда оба пира скрыты за NAT-ом). Для преодоления этого четвертого вида NAT-а нужен TURN-сервер. Его особенность в том, что он работает как прокси - то-есть пропускает весь трафик через себя - отсюда вы должны понять, что бесплатных TURN-серверов вы не найдете. Те аккаунты, что вы привели сверху скорее всего уже давно отключены.

    Отличный список STUN-серверов можно взять здесь - https://github.com/DamonOehlman/freeice он там постоянно проверяется и обновляется.

    Проблемя с двойным NAT-ом решается одним из трех способов:
    1. где-то находите временно халявный аккаунт на TURN-сервер (но аккаунт внезапно могут отключить)
    2. покупаете платный аккаунт на уже существующем сервере и платите за трафик, например здесь - https://my.xirsys.com/signup/plans/standard/monthly
    3. Разворачиваете свой turn-сервер. Мы, например, так и сделали. Взяли убунту за $5 в месяц на digitalocean и поставили там за пол дня опенсурсный, бесплатный turn-server - turnserver.open-sys.org/downloads
    Ответ написан
    3 комментария
  • Как поведет себя интерпретатор?

    @IceJOKER
    Web/Android developer
    А что мешает вам проверить это?
    $a = 5;
    
    $b = & $a;
    
    $c = $b;
    
    var_dump($a, $b, $c);//int(5) int(5) int(5)
    
    $a = 6;
    
    var_dump($a, $b, $c); //int(6) int(6) int(5)
    Ответ написан
    Комментировать