Комментарии 25
НЛО прилетело и опубликовало эту надпись здесь
Вы не поверите: программирование не ограничивается вебом.
+19
Совершенно верно. Можно запускать этот скрипт движком Node.js на сервере и наслаждаться. (Под Windows это, мне кажется, вообще единственный действенный способ работать в SQLite из-под Node.js, ведь node-sqlite3 на Windows ещё не портировали.)
+2
Не только. Можно, например, встраивать javascript в другие прораммы/писать на нём плагины, а sqlite использовать в качестве хранилища. Хотя, в случае плагинов, наверное, лучше обеспечивать хранение данных средствами самой программы через какое-либо API, чтобы не было зоопарка. Впрочем, это зависит от конкретных задач.
+2
По-моему вас все-равно не поняли :)
+1
Если не ошибаюсь используется localStorage для хранения данных
0
Нигде не хранится. Есть db.exportData(), результат можно зашифровать и сохранить, к примеру, в localStorage.
+2
я думаю это все же не на уровне polyfill, а скорее proof of concept…
выкокопроизводительные js-движки все же в тех браузерах что и так indexedDB поддерживают (polyfill это обычно чтото ие-костыле-подобное, а там этот js будет ой как тормозить)
выкокопроизводительные js-движки все же в тех браузерах что и так indexedDB поддерживают (polyfill это обычно чтото ие-костыле-подобное, а там этот js будет ой как тормозить)
+1
По моему мнению, sql.js будет тормозить хотя бы потому, что по объёму занимает ≈913 килобайтов. Такая груда не может не тормозить.
-2
Интуитивно с Вами согласен, но так можно сказать что firefox занимает 7 мб, значит он не может не тормозить. Или тормознутость мерять размером (да вообще зачастую бывает даже обратное соотношение).
Так что 900 килобайт сильно оптимизированного (типизированные массивы etc.) кода на JS может быть быстрее чем while(true) { do_nothing(); }
Так что 900 килобайт сильно оптимизированного (типизированные массивы etc.) кода на JS может быть быстрее чем while(true) { do_nothing(); }
+1
Проблема не столько в размере (вспомните твиттер с сообщениями в 140 символов и js на полмегабайта), сколько в самой технологии перевода. Emscripten не пытается выследить логическую структуру кода (циклы, ветвления, использование динамической памяти и т. д.), а берёт ассемблероподобное представление llvm и заменяет почти каждую инструкцию на соответствующий код в Javascript. Естественно, с эмуляцией стека, динамического выделения памяти и т. д.
Но проделанная работа определённо полезна как минимум для repl.it и обучалок вида tryhaskell.org и tryruby.org
Но проделанная работа определённо полезна как минимум для repl.it и обучалок вида tryhaskell.org и tryruby.org
+2
Очень круто, это ж можно забирать от туда парсер запросов и пользовать в онлайн редакторах, да так чтобы не только подсветка но еще и другие плюшки были, или например для тех кто делает онлайн курсы это позволило бы сделать их еще более интераквными
Зашел на его сайт он еще и lua портировал, то есть можно делать веб приложение с простеньким языком программирования на борту, так например апликухи для анализа данных можно было бы сделать намного более гибкими
В общем спасибо за статью и пищу для размышлений
Зашел на его сайт он еще и lua портировал, то есть можно делать веб приложение с простеньким языком программирования на борту, так например апликухи для анализа данных можно было бы сделать намного более гибкими
В общем спасибо за статью и пищу для размышлений
+3
Зашел на его сайт он еще и lua портировал, то есть можно делать веб приложение с простеньким языком программирования на бортуИсполнять lua движком на javascript? Зачем?
Ведь у нас уже есть гораздо более популярный (и в данном случае — более быстрый) javascript.
0
Мне из новинок понравился BankersBox он работает так-же как Redis только JS + localStorage. Очень удобно для тех кто знает Redis.
примеры:
примеры:
var bb = new BankersBox(1);
bb.set("foo", "bar");
bb.get("foo"); // returns "bar"
bb.set("count", 10);
bb.incr("count"); // sets "count" to 11, returns 11
bb.incr("newcount"); // sets "newcount" to 1, returns 1
bb.lpush("mylist", "hello");
bb.lrange("mylist", 0, -1); // returns ["hello"]
bb.rpush("mylist", "world");
bb.lrange("mylist", 0, -1); // returns ["hello", "world"]
bb.sadd("myset", "apple");
bb.sadd("myset", "oragne");
bb.smembers("myset"); // returns ["apple", "orange"]
bb.sismember("myset", "apple"); // returns true
bb.sismember("myset", "lemon"); // returns false
bb.scard("myset"); // returns 2
+2
Сам считаю этот BankersBox для некоторых случаев слишком тяжеловесным(18КБ несжатый) поэтому юзаю localStore который оч легкий и с фоллбэком на куки.
+1
Еще работал с Backbone.localStorage Может пригодится кому-то.
0
А еще теперь можно запустить в браузере VirualBox, а там — Windows При выборе решения надо следовать здравому смыслу, а не пытаться запустить на одной платформе то, что для нее не подходит. Но это мое имхо )
-1
Быстрые процессоры породили чудовищ.
+4
Это всё классно, только в современных браузерах (Хром, Опера, ФФ) отлично работает sqlite сам по себе, с помощью window.openDatabase()
сейчас www.w3.org/TR/webdatabase/
в будущем www.w3.org/TR/IndexedDB/
сейчас www.w3.org/TR/webdatabase/
в будущем www.w3.org/TR/IndexedDB/
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
SQL.js: движок SQLite переведён на JavaScript посредством Emscripten