The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Комитет W3C опубликовал черновик API для создания индексируемых БД в браузере

09.01.2010 23:27

В дополнение к ранее опубликованной спецификации WebSimpleDB API, определяющей возможность использования в web-приложениях API для доступа к интегрированной в web-браузер БД, работающей в режиме ключ/значение, комитет W3C представил черновой вариант стандарта IndexedDB API. Главное отличие новой спецификации - реализация возможности упорядоченной выборки данных, если в WebSimpleDB API можно было получить только заданные определенными ключами значения, то в IndexedDB API появилась возможность совершения операций по запросу ключей из базы, отсортированных в определенном порядке.

Кроме того, в IndexedDB API добавлены средства для гибкого поиска значений по маскам и диапазонам, реализована поддержка хранения нескольких значений, привязанных к одному ключу, включая возможность присвоения одному ключу одинаковых дублирующихся значений. Для организации работы индексов могут использоваться структуры данных, формируемые с использованием алгоритма B-tree. Индексы могут создаваться и удаляться для существующих хранилищ объектов в произвольном порядке, в зависимости от желания разработчика.

API предусматривает два метода совершения выборки: синхронный (с ожиданием завершения выборки и поддержкой курсоров) и асинхронный (после выполнения запроса работа скрипта сразу продолжается, после завершения выборки вызывается callback-функция).

Пример скрипта, поясняющего основную суть нового API:



   // Открываем БД
   var db = indexedDB.open('AddressBook', 'Address Book');
   if (db.version === '1') {
      // Если БД версии без поддержки индексации, создаем индекс и преобразуем в новый формат.
      var olddb = indexedDB.open('AddressBook', 'Address Book');
      olddb.createObjectStore('Contact', 'id', true);
      olddb.createIndex('ContactName', 'Contact', 'name', false);
      olddb.setVersion('2');
   }

   // Пример сохранения данных.
   var store = db.openObjectStore('Contact');
   var lincoln = {name: 'Lincoln', number: '7012'};
   var contact = store.put(lincoln);

   // Пример выборки из индекса.
   var index = db.openIndex('ContactName');
   var id = index.get('Lincoln');
   if (id)
     report(id.name);
   else
     report(null);

   // пример выборки по диапазону значний.
   var range = new KeyRange.bound('L', 'M'); //выборка значений с  первыми буквами от L до M
   var cursor = index.openCursor(range);
   cursor.continue();



  1. Главная ссылка к новости (http://www.w3.org/News/2010#en...)
  2. OpenNews: Представлен черновой вариант API для работы с файлами на JavaScript
  3. OpenNews: Комитет W3C представил спецификацию для организации БД внутри браузера
  4. OpenNews: Работа над стандартом XHTML2 прекращена в пользу HTML5
  5. OpenNews: В Google Chrome и WebKit появилась поддержка технологии web-сокетов
Лицензия: CC-BY
Тип: К сведению
Короткая ссылка: https://opennet.ru/24955-web
Ключевые слова: web, database, index
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (36) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, уауауауауа (?), 23:33, 09/01/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Зачем еще одни продвинутые кукисы? Для шпионов и рекламщиков...
     
     
  • 2.2, ПринцЧорнойТьмы (?), 23:52, 09/01/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Рекламщикам и обычных хватало. Это для оффлайновых веб-приложений.
     
     
  • 3.18, аноним (?), 19:08, 10/01/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Что только люди не сделают чтобы не писать нормальные приложения. Совершенно низачем сделаем web, потом его сделаем offline, потом прикрутим для него недо-базу данных... Эх.
     
     
  • 4.25, szh (ok), 23:36, 10/01/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ты не думал что то что ты называешь "нормальными приложениями" - ненормально. А web+offline web - нормально ?

    Web приложения
    1) не требуют инсталляции
    2) работают в теоретически безопасных изолированных окружениях
    3) Не требуют привязки к операционной системе (т е можно и в телевизоре и в таблетке запускать не платя налог майкрософту за их прослойку api и не тратясь на портирование в макось)

    это cуровые преймущества над классической схемой install_trojan.jpg.exe которая сложна и опасна для юзера.

     
     
  • 5.28, аноним (?), 06:12, 11/01/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > ты не думал что то что ты называешь "нормальными приложениями" - ненормально. А web+offline web - нормально ?

    Мы с вами на бурдершафт не пили. Тыкать будете одноклассникам.

    > 1) не требуют инсталляции

    И каким же магическим образом они интересно появятся у вас на компьютере, да еще offline?

    > 2) работают в теоретически безопасных изолированных окружениях

    Теоретически, ага. Теоретики все такие теоретики.

    > 3) Не требуют привязки к операционной системе (т е можно и в телевизоре и в таблетке запускать не платя налог майкрософту за их прослойку api и не тратясь на портирование в макось)

    Странно, как же я без этого запускал софт не платя микрософту, под mac os в том числе. А вы я смотрю не прочь платить если не микрософту, то гуглу, и если не деньгами, то просмотром рекламы, траффиком и временем.

    > это cуровые преймущества над классической схемой install_trojan.jpg.exe которая сложна и опасна для юзера

    Чем же она сложна? Сложностей для юзера уже давно нигде нет. Запустить exe'шник ~ нажать на ссылку ~ поставить пакет в synaptic.
    А от вредоносности этой схемы web приложения никак не защищают. Во-первых, от нативного софта вы все равно никуда не денетесь банально потому что webня нихрена пока не умеет, во-вторых, уже давно есть, таки да, offline web трояны. А защищает установка софта из проверяемых источников, как все нормальные люди и делают. Web таким не является и никогда не будет.

    Вообще, все гораздо проще, чем вы думаете - ваш "offline web" - ровно такая же прослойка, как и от микрософта, просто с другими корнями и технологически отставшая на десяток лет. Еще через десяток под нее понапишут своих баз данных, тулкитов, 3D движков и прочей хрени, целиком реализуют <video> и canvas в браузерах, допилят JIT'ы чтобы это нормально работало - оно станет всего лишь еще одной жавой/дотнетом, и будет распрастранено в тех же кругах - ынтерпрайз "на посчитать 2*2 лишний сервер поставить не обломно". А вы что думали, революция?

     
     
  • 6.30, szh (ok), 14:01, 11/01/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если претендуете на высококультурное общение потрудитесь для начала постить не и... большой текст свёрнут, показать
     
     
  • 7.31, аноним (?), 15:02, 11/01/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Это ваши домыслы На опеннете хамством и ламерством страдают в основном а скоре... большой текст свёрнут, показать
     
     
  • 8.32, Зилибоба (??), 17:06, 11/01/2010 [^] [^^] [^^^] [ответить]  
  • +/
    А при чем тут посикс, граждане А посикс тут не причем Вот моя плазма, ни чо о... текст свёрнут, показать
     
     
  • 9.33, аноним (?), 18:33, 11/01/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да засуньте вы себе свои примеры Вы можете это гoвнецо крутить хоть на тостерах... текст свёрнут, показать
     
  • 8.37, szh (ok), 20:53, 12/01/2010 [^] [^^] [^^^] [ответить]  
  • +/
    а мне думается что зайдя на сайт не в первый раз и устраивая дискуссии невежлив... большой текст свёрнут, показать
     
     
  • 9.38, аноним (?), 00:27, 13/01/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Вы ровно также скрываетесь за ником А вам не все равно Общайтесь как с незнако... большой текст свёрнут, показать
     
  • 2.20, що (?), 20:26, 10/01/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Наа мой взгляд, это один из последних этапов превращения браузера в толстые клиенты, которые создадут полноценную конкуренцию толстым клиентам типа SAP GUI
     
     
  • 3.21, User294 (ok), 20:59, 10/01/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А скоро браузер уже начнет своей файловой системой и системными вызовами обладать? oO
     
     
  • 4.22, що (?), 21:52, 10/01/2010 [^] [^^] [^^^] [ответить]  
  • +/
    давеча была демонстрация компилируеомго софта, исполняемого прямо в браузере, с поддержкой аппаратного 3D
     
  • 4.26, szh (ok), 23:39, 10/01/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    1) новость которую мы обсуждаем - как раз про файловую систему в браузере. Только она индивидуальна для каждого приложения.

    2) C плагинами можно и 5-10 лет назад это было сделать, но это уже гибрид, а не веб приложение.

     
     
  • 5.35, User294 (ok), 22:19, 11/01/2010 [^] [^^] [^^^] [ответить]  
  • +/
    1) В каком-то роде вы правы, пожалуй.
    2) С плагинами оно почти никому не надо - а кому нужен геморрой?
     

  • 1.3, ПринцЧорнойТьмы (?), 23:55, 09/01/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Думаю, реализовать это будет не так просто. Это уже крутой бессхемный сторедж. Что-то подобное есть в tokyo cabinet, и он достаточно легковесный, но там еще обязательны первичные ключи.
     
     
  • 2.4, Аноним (-), 00:53, 10/01/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Интегрировать mongodb в браузер? :)
     
     
  • 3.14, Bregor (??), 13:58, 10/01/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Или Couch, ага ;)
     
  • 2.36, User294 (ok), 22:25, 11/01/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >там еще обязательны первичные ключи.

    Логично что в базе вида key-value key как бы обязателен :-). Ну или откуда оно без кея будет знать что вы вообще хотели найти? :). А чего в этом такого крутого то? B-деревья да хеши, всем известные уж сто лет. Просто, топорно но зато быстро - стормозить не на чем.

     

  • 1.5, Iv945n (ok), 01:43, 10/01/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > если в WebSimpleDB API можно было получить только заданные определенными ключами значения, то в IndexedDB API появилась возможность совершения операций по запросу ключей из базы, отсортированных в определенном порядке

    Пройдёт n лет и они изобретут и стандартизуют встроенную реляционную субд с внешними ключами и диалектом SQL, который будет разный в разных браузерах.

     
     
  • 2.10, Чорная дипрессия 666 (?), 10:01, 10/01/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Не думаю. В веб-приложениях как раз сейчас многие отказываются от реляционных СУБД.
     
     
  • 3.11, klalafuda (?), 10:56, 10/01/2010 [^] [^^] [^^^] [ответить]  
  • +/
    В пользу чего если не секрет?
     
     
  • 4.12, bill (ok), 12:01, 10/01/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Имхо, речь о NoSQL.
     
  • 3.17, pro100master (ok), 18:48, 10/01/2010 [^] [^^] [^^^] [ответить]  
  • +/
    многие? Это доли процента + гики. Хотел бы посмотреть, как десятки миллионов бложиков будут легким движением указательного пальца нажимать левую кнопку мышки по кнопке "инсталляция NoSQL версии x.y.z" :)))

    В вебе NoSQL вообще не нужен большинству юзеров. Мы ведь понимаем, что 1-20% от времени исполнения скрипта затрат на БД это всё-таки 1-20%, а 80-99% это всё-таки скрипт. Да и у SQL БД есть 5 причин быть массовым и актуальным именно в традиционном вебе :)))

     
     
  • 4.41, вася (??), 08:37, 23/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Мы ведь понимаем, что 1-20% от времени исполнения скрипта затрат на БД

    В высоконагруженных сайтах эта доля возрастает. Не зря всякие там твиттеры именно NoSQL юзают.

     
     
  • 5.42, Андрей (??), 01:43, 26/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Думаю люди в кометете тоже об этом слышали но так как они все фронт-эндшики то не разбираются в сути проблемы и просто поддались моде. NoSQL в твитерах используется не потому что это круто или потому что люди в твиттер или линкедин не хотят купить Oracle 11g а просто потому что Oracle 11 даже с буквой g, где эта буква означает Grid не умеет масштабироваться сколько нибудь близко к линейной зависимости в зависимости от числа серверов в кластере. И происходит это не потому что программеры в Oracle тупые, а просто концепция SQL базы данных подразумевает поддержку концепции ACID которую ну никак нельзя поддержать одновременно с поддержкой распределенных баз данных производительность которых бы росла линейно в зависимости от числа узлов. Принципиально. Есть даже теорема такая CAP называется.

    Но это все про террабайты данных и миллиарды записей, на клиенте же под сторадж локальной базы на один URL скорее всего будет лимит что то вроде 1Mb. Никаких проблем реализовать ACID и SQL базу данных в которой будет максимум 1Mb данных нет.
    Зачем там городить No SQL? Есть даже куча реализаций In process SQL баз данных начиная HSQL (Pure Java) и SQLite и заканчивая MS SQL Server Compact Edition (Между прочим Freeware). Так что сложности реализации даже полного подмножества SQL92 не было бы на клиенте в принципе.

     
  • 2.15, Bolk (?), 14:06, 10/01/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Пройдёт n лет и они изобретут и стандартизуют встроенную реляционную субд с внешними ключами и диалектом SQL

    Есть она уже, почитайте стандарты. Причём, используется SQLite. Вы, видимо, считаете, что реляционные БД это следующий шаг, тогда как у этих видов БД просто разные задачи.

     

  • 1.19, vbv (ok), 20:19, 10/01/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я, заранее прошу прощения.
    Но, наблюдается неприятная тенденция - для отображения WEB-страниц требуется все более мощная аппаратная база на стороне клиента. Это печально.

    По правьте меня - если я ошибаюсь. Но это уже получаются очень толстые клиенты.
    Скоро вернемся к клиент-серверной технологии в ее классическом варианте где на стороне клиента будет исполняться "Маленькое" специально для этого написанное приложение а не мега-клиент типа БРАУЗЕР.

     
     
  • 2.23, аноним (?), 22:06, 10/01/2010 [^] [^^] [^^^] [ответить]  
  • +/
    история развивается по спирали
     
  • 2.24, pro100master (ok), 22:07, 10/01/2010 [^] [^^] [^^^] [ответить]  
  • +/
    сложность, требования и решаемые сегодня задачи, естественно повышают требования а АО. Ресурсоемкие. Чем вчера. Но менее, чем завтра. Как и i286 вчера был в 20000 раз слабее, чем сегодня c2d :)))
    Причин в софте 2 - уровень задач растет, лень (большинство велосипедистов предпочитают велосипеды из коробки, пусть и медленные).
    И да web browser - клиент, web server - сервер. Мы ни к чему не возвращается. Будущее уже здесь (с) :)))
     
  • 2.27, szh (ok), 23:54, 10/01/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Но, наблюдается неприятная тенденция - для отображения WEB-страниц требуется все более мощная аппаратная база на стороне клиента. Это печально.

    Это уже не веб-СТРАНИЦЫ, а веб-ПРОГРАММЫ. Страница - это html файл с разметкой и css без js. Пока js 50 строчек это еще больше страница чем программа, но когда js тысячи строчек это уже программа, а не страница (я таких парочку написал)

    Конечно многие пока что используют эти возможности лишь для прокрутки баннеров, но тут расширения flashblock(firefox,chrome) и noscript(firefox) помогают не расходовать процессор почем зря где не надо.

    > Но это уже получаются очень толстые клиенты.

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

    > на стороне клиента будет исполняться "Маленькое" специально для этого написанное приложение а не мега-клиент типа БРАУЗЕР.

    Для маленького приложения нужна все равно мегаоболочка называемая ОС. Cчитайте браузер системным сервисом. (с изоляцией вкладок по процессам как у хрома и как через год-два будет в фаерфокс можно так считать)

     
     
  • 3.29, Сергей (??), 11:26, 11/01/2010 [^] [^^] [^^^] [ответить]  
  • +/
    А давайте для веб введем термин "недопрограмма", чтобы не смущать людей.
     
     
  • 4.40, Аноним (-), 16:44, 27/01/2011 [^] [^^] [^^^] [ответить]  
  • +/
    А веб-программистов переименуем в недо-программистов! Хотя это и так все знают.
     
  • 2.34, аноним (?), 18:54, 11/01/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Но, наблюдается неприятная тенденция - для отображения WEB-страниц требуется все более мощная аппаратная база на стороне клиента. Это печально.

    Наоборот - тенденция отличная - сразу видно на какие сайты можно больше никогда не ходить. Поверьте, сайты где есть ценная информация, препятствий для ее просмотра в виде вебдваноля и флеша чинить не будут.

     

  • 1.39, Аноним (-), 11:27, 08/12/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кроме того, в IndexedDB API добавлены средства для гибкого поиска значений по маскам и диапазонам, реализована поддержка хранения нескольких значений, привязанных к одному ключу, включая возможность присвоения одному ключу одинаковых дублирующихся значений. Для организации работы индексов могут использоваться структуры данных, формируемые с использованием алгоритма B-tree. Индексы могут создаваться и удаляться для существующих хранилищ объектов в произвольном порядке, в зависимости от желания разработчика.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру