Maxmaxmaximus4, просто если скрипт не работает в фрейме, значить с ним что то не так?
|
Цитата:
например тут был баг когда пришлось очистить кэш вручную чтобы новая версия 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, я тут немного завис, как ты сделал scope для функции так что бы items не был глобальной переменной? О_о
П.с Возможно я уже туплю. |
Цитата:
Пенек пеньком, бывает же такое)) |
Цитата:
|
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к элементов за 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
}
}
|
Цитата:
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); ?? я что, нули не могу хранить в массиве теперь и пустые строки? |
Цитата:
|
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
}
}
|
| Часовой пояс GMT +3, время: 18:54. |