Что можно почитать на тему 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, время: 04:20. |