Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 03.02.2014, 18:48
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

Сообщение от melky Посмотреть сообщение
наверное, нужно больше туториалов. в примере с TODO я ничего не понял
Ну вот например вью-модель задачи в списке задач: https://github.com/nin-jin/pms-jin/b...ew_item.jam.js

У него есть свойство current - флаг указывающий, что этот таск сейчас выделен.

Объявляем мы его просто:

$jin.atom.prop({ '$jin.task.view.item..current':
{   pull: function( ){
		return this.list().task() === this.task()
	}
}})


То есть, берем список в котором отображается вьюшка, смотрим у него текущую задачу и если она совпадает с нашей, то значит вьюшку надо выделить как текущую. При этом нам не надо ни подписываться ни на какие события, ни писать где либо в другой части приложения код для обновления состояния этой вьюшки. Значение этого атома всегда остаётся актуальным.
__________________
.ня
Ответить с цитированием
  #12 (permalink)  
Старый 04.02.2014, 00:26
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus7
 
Регистрация: 08.01.2014
Сообщений: 354

ui поддерживает frp
Ответить с цитированием
  #13 (permalink)  
Старый 04.02.2014, 01:30
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

Ты так и не рассказал каким образом)
__________________
.ня
Ответить с цитированием
  #14 (permalink)  
Старый 04.02.2014, 02:00
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus7
 
Регистрация: 08.01.2014
Сообщений: 354

function Controller() {

    a = 10
    b = 20
    c = (a + b)  // 30

    say = function() {
      a++;
      alert( c ) // 31
    }

}



и вообще-то я рассказал, это называется формулы. я же писал в том топике. с это ячейка которая связана с ячейками a и b по формуле a+b


или вот например, ячейка form динамичски пересчитывается при обращении к ней. и выдает заполненный обьект.


function Controller() {

    name = 'Ашот'
    age = 11

    form = ({
      name: name,
      age : age
    })

    sendForm = function() {
      $http( 'api.php?sendForm', form )
    }

}

Последний раз редактировалось Maxmaxmaximus7, 04.02.2014 в 02:05.
Ответить с цитированием
  #15 (permalink)  
Старый 04.02.2014, 02:38
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

А, ну это твой собствнный язык. Он хоть тьюринг-полный?)
__________________
.ня
Ответить с цитированием
  #16 (permalink)  
Старый 04.02.2014, 02:45
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus7
 
Регистрация: 08.01.2014
Сообщений: 354

Сообщение от tenshi
ну это твой собствнный язык
не сказал бы что это язык) обычные "сниппеты") это можно записать и руками

function Controller() {

    var $$self = this;

    $$self.a = 10
    $$self.b = 20
    $cell( 'c', function() { return $$self.a + $$self.b } )

}



скобочки это просто небольшой сахар) и кстати, я не понял как утверждение "это твой язык" опровергает поддержку FRP? Ведь оно ПОДТВЕРЖДАЕТ поддержку FRP. Я добавил сахарный способ создания формул, и способ этот похож на синтаксис клажуры.
Ответить с цитированием
  #17 (permalink)  
Старый 04.02.2014, 02:51
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

Ой, да у тебя дигест как в ангуляре.. смерть на больших данных)
__________________
.ня
Ответить с цитированием
  #18 (permalink)  
Старый 04.02.2014, 03:23
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus7
 
Регистрация: 08.01.2014
Сообщений: 354

ну не знай, 5000 ватчеров проверяет 20 миллисекунд на пеньке 4) а вот то что смерть это лишь твоя диванная теория, неболее)

п.с. дайджест блять, дайджест)

Сообщение от tenshi
у тебя дигест как в ангуляре
а что ты предлагаешь? и приведи пример смерти на больших данных

Последний раз редактировалось Maxmaxmaximus7, 04.02.2014 в 11:40.
Ответить с цитированием
  #19 (permalink)  
Старый 05.02.2014, 01:17
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

У меня как в нокауте, большее потребление памяти, но и не перелопачивается вся коллекция на каждый чих.

Допустим, задача: есть список на 50000 задач. Задачи имеют название, описание, статус, список ответственных пользователей, запланированную дату, приоритет. Нужно сортировать по алфавиту, по дате с группировками (на сегодня, на этой неделе, просроченные) и (по приоритетам плюс завершенные - самый низкий приоритет). Любой параметр задачи можно в любой момент изменить и задача должна перелетать на правильное место в списке.

Будет от 200мс на каждый чих?)
__________________
.ня
Ответить с цитированием
  #20 (permalink)  
Старый 05.02.2014, 11:27
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus7
 
Регистрация: 08.01.2014
Сообщений: 354

да, но таких список обычно не бывает по этому это не страшно.
или бывает? я напомню что перелопачивается только то, что собирается рисоваться в html. у тебя и вручную созданные 50000 дивов будут тупить.
По этому это не проблема. На списках размером 1000-2000 перелопачивание не заметно для пользователя. Оно дольше чем в нокаутах но все таки не заметно, так что не страшно. Разумеется в будущем я думаю оптимизировать это, ну так, чтобы приятно было мне. Сделаю полифил для Object.observe геттерами и сеттерами. и буду использовать его за место $digest.

пока такой способ перелопачивания я нахоэу проиемлемым так как в реальности не бывает случаев когда надо перелопатить больше 5000 элементов массива, и такое перелопачивание занимает меньше 10 миллисекунд на моем слабом компьютере pentium 4
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
dojo Tooltip Tanya144 Dojo toolkit 2 15.08.2014 18:58
Интересно знать andrey888 Javascript под браузер 4 27.06.2012 13:01
Как вставить кому max00077 Общие вопросы Javascript 22 31.07.2011 16:25