Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Планировщик .. (https://javascript.ru/forum/angular/49445-planirovshhik.html)

l-liava-l 13.08.2014 15:07

Планировщик ..
 
Доброго времени суток!

В приложении нужно сделать так, чтобы при отсуствии интернета, все действия которые делает пользователь (сохранение инфы, удаление) отправлялись в облако, когда инет появится. Ну ясен пень тут нужен планировщик.


Собстна есть вот это:
App.factory 'planner', () ->
  {
    add: (func, context) ->
      if !func then return

      getArg = (arg)->
        output = []
        for i of arg
          if parseInt(i) > 1
            output.push(arg[i])
        return output


      task =
        func: func
        ctx: context
        arg: getArg(arguments)


      if this.$tasks
        this.$tasks.push(task)

    exe: () ->
      console.log this.$tasks
      for task in this.$tasks
        task.func.apply(task.ctx, task.arg)

  }


Как видно, он сохраняет функцию, контекст и аргументы и исполняет когда нужно
Работает, НО, он работает до разрыва сессии (закрыли приложение)

Это плохо.

Вопрос: как хранить все это дело? в локалсторадже? но туда нельзя пихать функции да и во время сериализации контекста json stringify крошится от переполнения стака вызовов.


И шо мне делать? как решить? подскажите пожалуйста

может преобразовать все это дело в строку, засунуть в сторадж, а при запуске эвалить?

nerv_ 13.08.2014 15:45

Цитата:

Сообщение от l-liava-l
В приложении нужно сделать так, чтобы при отсуствии интернета, все действия которые делает пользователь (сохранение инфы, удаление) отправлялись в облако, когда инет появится. Ну ясен пень тут нужен планировщик.

Мне, например, ничего не ясно. Если у тебя приложение gmail, то без сервера далеко не уедешь.

melky 13.08.2014 15:47

Цитата:

Сообщение от l-liava-l
Вопрос: как хранить все это дело? в локалсторадже? но туда нельзя пихать функции да и во время сериализации контекста json stringify крошится от переполнения стака вызовов.

люби своё ООП, страдалец :nono:

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

Цитата:

Сообщение от l-liava-l
И шо мне делать? как решить?

состояние - бич объектной парадигмы. его никуда не засунешь - просто иногда придётся обходить этот "маленький" минус стороной костылями, в этом нет ничего страшного

Цитата:

Сообщение от l-liava-l
во время сериализации контекста json stringify крошится от переполнения стака вызовов.

КАК ?!

Цитата:

Сообщение от l-liava-l
но туда нельзя пихать функции

тебе придется либо придумывать свой формат для Job'ов (для Scheduler'а), а вместе с этим здорово велосипедить,либо найти готовое . но вот я что-то не могу найти ....

Цитата:

Сообщение от l-liava-l
в локалсторадже

насколько я знаю, других способов сохранить состояние надолго у нас (разработчиков) пока нет
и кроме строк мы вроде не можем ничего сохранять, верно ведь?

nerv_ 13.08.2014 16:46

Цитата:

Сообщение от melky
состояние - бич объектной парадигмы

возлюби функциональное программирование :D

l-liava-l 13.08.2014 16:51

Цитата:

насколько я знаю, других способов сохранить состояние надолго у нас (разработчиков) пока нет
и кроме строк мы вроде не можем ничего сохранять, верно ведь?
:yes:
WebSQL, IndexedDB

melky 13.08.2014 17:19

Цитата:

Сообщение от nerv_
возлюби функциональное программирование

в процессе прелюдий :)


Часовой пояс GMT +3, время: 02:41.