Как ускорить работу Google Chrome с множеством вкладок
В адресной строке вводим: chrome://flags/#enable-tab-discarding (или chrome://flags/#automatic-tab-discarding) Ставим Enabled и перезапускаем браузер. Теперь браузер сам будет выгружать неиспользуемые вкладки при большом жоре памяти. При переключении на старую вкладку её нужно будет перезагрузить. По ссылке chrome://discards/ можно посмотреть все вкладки и руками сделать ей discard.
Hackstack.js — библиотека для подмены API в angular.js
https://github.com/rangle/hackstack Позволяет не только подменять ответы, встраиваясь в Angular.js, но и, к примеру, генерировать задержки ответов. Видео от создателя — https://www.youtube.com/watch?v=PNpOGwOoSiw
Наследование в Javascript
Рекомендация ECMAScript5 Минус — вызывается конструктор родителя раньше времени. https://jsbin.com/zoxude/1/edit?js,output
Автоматическое тестирование нативных приложений
Надстройка над selenium — http://appium.io/getting-started.html
Вывод breadcrumb в результатах поиска google
Нужно реализовать вот это: https://developers.google.com/structured-data/breadcrumbs#examples
Особенности setInterval на практике
Раньше я был уверен, что в этом случае setInterval ставится на выполнение раз в секунду, что бы ни произошло:
1 |
setInterval(function () {}, 1000); |
Но, видимо, это не так. Если в очереди уже есть задача от этого интервала, то новая задача туда не поставится. Вот пример: http://jsbin.com/rifahi/edit?html,js,output Поэтому сам с собой он борьбу за ресурсы не устроит. Но в …
Как посчитать битрейт текущей композиции вк
В консоли хрома:
1 2 3 4 5 6 7 8 9 10 11 12 |
function calcBitrate(size, duration) { var kbit=size/128; //calculate bytes to kbit var kbps= Math.ceil(Math.round(kbit/duration)/16)*16; return kbps; } function getCurBitrate() { var audio = document.getElementById('html5_audio'); var playedSize = audio.webkitAudioDecodedByteCount; var playedDuration = audio.currentTime; return calcBitrate(playedSize, playedDuration); } |
И потом во время воспроизведения можно в консоли просто писать:
1 |
getCurBitrate() |
Чем дольше играет, тем точнее. Тут будут ещё добавления на тему того, как для вк взять список всех композиций и посмотреть по ним название трека, длительность и тп. Но это мало кому интересно, так что эту часть я от вас …
Angular 1: Controller As vs $scope
controller as появился далеко не сразу. Зачем он нужен? $scope наследуется, и как только в дочернем шаблоне произойдёт изменение отнаследованной модели, она перестанет синхронизироваться с родительской. Обойти это можно было, создавая модели-свойства объектов. Но это не очень очевидно и не так изящно. Поэтому была введена конструкция вида <div ng-controller=»ParentController as parent»>. Тогда в шаблонах модели …
Как typescript выводит классы для es5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
var Person = (function() { function Person(name) { this.name = name; } Person.prototype.greet = function greet() { return "Hi, " + this.name + "!"; }; return Person; }()); var bu = new Person("bu"); console.log(bu.greet()); |
https://jsbin.com/zowahi/edit?js http://www.typescriptlang.org/play/
shake.js — jQuery-плагин для определения, что телефон трясут
https://github.com/alexgibson/shake.js