Что можно почитать на тему javascript MVC, MVVM ... ?
|
Цитата:
|
Ребят, посоветуйте какой-нибудь самый-самый фреймворк(и?) для создания клиентсайда? Очень важно, чтобы он удовлетворял следующим условиям:
- поддержка ES6 - сравнительно быстрая разработка(UI/логики) - активное сообщество Слышал про Ангуляр 2, но он ещё не релизнулся, на сколько я знаю. З.Ы. стало мало Реакта, решил расширить знания) |
|
Safort, давно хочу попробовать, но руки не доходят http://javascript.ru/forum/offtopic/...tml#post369258 :)
|
Gozar,
нее, хочется чего-то совсем далёкого от реакта. Просто ради разнообразия) nerv_, ок, ушёл туда. |
Safort, я вообще-то почти прямую ссылку дал)
|
Лол, должность "инженер HTML" http://www.pracuj.pl/praca/inzynier-...oferta,3919582
Цитата:
|
Array::contains()
Тестирую функцию Array.prototype.contains2() с двунаправленным поиском, что теоретически должно увеличить вероятность/скорость поиска на всем пространстве значений.
Кому не лениво, запустите и напишите результаты сюда. Код и мои результаты ниже. Также принимаются замечания :) /** * @param {*} any * @returns {Boolean} */ // TODO не находит NaN Array.prototype.contains1 = function(any) { return this.indexOf(any) !== -1; }; /** * @param {*} any * @returns {Boolean} */ // TODO не находит NaN Array.prototype.contains2 = function(any) { var array = this; var l = array.length; if (l === 0) return false; for(var i = 0, j = l - 1; i <= j; i++, j--) { if (array[i] === any) return true; if (array[j] === any) return true; } return false; }; // ------------------------------------- var NEEDLE = {}; var DATA = createDataSet(); console.log('data set was created'); //console.log(DATA); test(function(array) { array.contains1(NEEDLE); }, 'contains1'); test(function(array) { array.contains2(NEEDLE); }, 'contains2'); function test(cb, msg) { var startTimeStamp = Date.now(); console.log('start::' + msg); for(var i = 0, a = DATA, l = a.length; i < l; i++) { cb(a[i]); } var endTimeStamp = Date.now(); console.log(endTimeStamp - startTimeStamp, msg); console.log('end::' + msg); } function createDataSet() { var EXPONENT = 6; // 1 var data = []; for(var i = 0; i < 10; i++) { var array = range(0, Math.pow(10, EXPONENT)); var needleIndex = Math.pow(10, EXPONENT - 1) * i; array[needleIndex] = NEEDLE; data.push(array); } data.push(range(0 ,Math.pow(10, EXPONENT))); return data; // ---------------------- function range(from_, to_) { for(var a = [], j = from_; j < to_; j++) { a[j] = j; } return a; } } Windows7 x64 Chrome (last) 115 "contains1" 80 "contains2" Firefox (last) 23 "contains1" 27 "contains2" IE 10 139contains1 90contains2 |
nerv_,
Windows8.1 x64 Chrome (last) 58 "contains1" 60 "contains2" Firefox (last) 8 contains1 10 contains2 IE 11 114 contains1 530 contains2 |
Часовой пояс GMT +3, время: 07:32. |