09.12.2013, 23:04
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Maxmaxmaximus4, просто если скрипт не работает в фрейме, значить с ним что то не так?
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
09.12.2013, 23:09
|
Кандидат Javascript-наук
|
|
Регистрация: 08.12.2013
Сообщений: 142
|
|
Сообщение от cyber
|
просто если скрипт не работает в фрейме, значить с ним что то не так?
|
на чем основано утверждение что скрипт не работает во фрейме из-за того что он во фрейме а не по другим причинам?
например тут был баг когда пришлось очистить кэш вручную чтобы новая версия ui заработала, хотя время жизни стоит 0. теперь ты понял что был не прав пошутив про танцора?
ну а чо) норм так на пеньке то четвертом, а у вас что показывает? 5к элементов
<script src='//mychamber.ru/build/ui.js'></script>
<ul controller="Chat">
<button click="reverse()">reverse</button>
<li repeat="item in items">{item}</li>
</ul>
<script>
function Chat() {
items = genArr(5000)
reverse = function() {
items = items.reverse()
}
}
function genArr(cnt) {
var arr = [];
for (var i = 0; i < cnt; i++) {
arr[i] = Math.round(Math.random()) ? Math.random() : i;
}
return arr;
}
</script>
Последний раз редактировалось Maxmaxmaximus4, 09.12.2013 в 23:14.
|
|
09.12.2013, 23:25
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Maxmaxmaximus4, я тут немного завис, как ты сделал scope для функции так что бы items не был глобальной переменной? О_о
П.с Возможно я уже туплю.
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
09.12.2013, 23:31
|
Профессор
|
|
Регистрация: 14.03.2012
Сообщений: 1,808
|
|
Цитата:
|
repeat: 4417.068ms
|
Intel® Core™ i3-3217U CPU @ 1.80GHz × 4
Пенек пеньком, бывает же такое))
__________________
Научу себя плохому
|
|
10.12.2013, 00:00
|
Кандидат Javascript-наук
|
|
Регистрация: 08.12.2013
Сообщений: 142
|
|
Сообщение от l-liava-l
|
Пенек пеньком, бывает же такое))
|
консоль то закрой когда тестишь)) ты не знал что она тормозит работу скрипта)??? консоль закрой потыкай а потом открывай смотри.
Последний раз редактировалось Maxmaxmaximus4, 10.12.2013 в 00:06.
|
|
10.12.2013, 00:01
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Maxmaxmaximus4,, епать я затупил, короче можно сделать что бы в пару раз быстрее работало)
нужно добавить проверку
function compare(fArr,arr) {
var search = arr.slice(),
insert = [],
remove = [],
replace = [];
for(var i = 0, index; i < fArr.length; i++) {
if(fArr[i] === arr[i]){// вот эта проверка
delete search[i];
continue;
}
index = search.indexOf(fArr[i]);
if(!~index) {
remove.push(i);
continue;
}
i != index && replace.push({old: i, new: index});
delete search[index];
};
search.forEach(function (elem, i) {
if(elem)
insert.push(i);
});
return {
remove: remove,
insert: insert,
replace: replace
}
}
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
10.12.2013, 00:05
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Китайский городовой, ЕПАТЬ Я БЛ** кактус, короче массив на 10к элементов за 200 милесекунд
http://learn.javascript.ru/play/20fUc
function compare(fArr,arr) {
var search = arr.slice(),
insert = [],
remove = [],
replace = [];
for(var i = 0, index; i < fArr.length; i++) {
if(fArr[i] === arr[i]){
search[i] = null; // убираем на фиг delete
continue;
}
index = search.indexOf(fArr[i]);
if(!~index) {
remove.push(i);
continue;
}
i != index && replace.push({old: i, new: index});
search[index] = null; // убираем на фиг delete
};
search.forEach(function (elem, i) {
if(elem)
insert.push(i);
});
return {
remove: remove,
insert: insert,
replace: replace
}
}
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
10.12.2013, 00:07
|
Кандидат Javascript-наук
|
|
Регистрация: 08.12.2013
Сообщений: 142
|
|
Сообщение от cyber
|
я тут немного завис, как ты сделал scope для функции так что бы items не был глобальной переменной? О_о
|
немного уличной магии ^_^ это не глобальная переменная это синтаксис такой, это поле контроллера, можем развернуть такие поля в текущий скоуп а можем развернуть в инстанс
controller='Ctrl as obj' и обращаться уже нужно будет уже как obj.items а не просто items
^____^
а еще есть frp стиль, в котором и рекомендуется писать. (это) синтаксис ячеек, если то что приравнивается в поле контроллера обернуто в ячейки то оно оборачивается в функцию и вешается геттер на это поле, так что значение там будет всегда актуальное.
<script src='//mychamber.ru/build/ui.js'></script>
<div controller="Ctrl">
<button click="up()">up</button>
{a} плюс {b} ровно: {c}
</div>
<script>
function Ctrl() {
a = 11
b = 20
c = (a + b)
up = function() { a++ }
}
</script>
cyber, почему ты проверяешь ячейку так if(elem) insert.push(i); ??
я что, нули не могу хранить в массиве теперь и пустые строки?
Последний раз редактировалось Maxmaxmaximus4, 10.12.2013 в 00:09.
|
|
10.12.2013, 00:12
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Сообщение от Maxmaxmaximus4
|
я что, нули не могу хранить в массиве теперь и пустые строки?
|
Не будь ты индусом, замени null на undefined, эт я от радости не подумал
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
10.12.2013, 00:13
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
function compare(fArr,arr) {
var search = arr.slice(),
insert = [],
remove = [],
replace = [];
for(var i = 0, index; i < fArr.length; i++) {
if(fArr[i] === arr[i]){
search[i] = undefined;
continue;
}
index = search.indexOf(fArr[i]);
if(!~index) {
remove.push(i);
continue;
}
i != index && replace.push({old: i, new: index});
search[index] = undefined;
};
search.forEach(function (elem, i) {
if(elem !== undefined)
insert.push(i);
});
return {
remove: remove,
insert: insert,
replace: replace
}
}
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
|
|