Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.10.2016, 18:05
Интересующийся
Отправить личное сообщение для JS2DX Посмотреть профиль Найти все сообщения от JS2DX
 
Регистрация: 20.04.2014
Сообщений: 23

Инструменты разработки Веб на основе БД noSQL
Оцените новый сайт инструментов разработки Веб на основе движка БД noSQL.

При загрузке дерева ДОМ все элементы получают уникальный первичный ключ.

БД предоставляет индексацию элементов дерева для мгновенной выборки без запуска ф-ции document.getElementByID() и другие полезные фичи.


Сайт http://js2dx.com
Ответить с цитированием
  #2 (permalink)  
Старый 01.10.2016, 19:46
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

JS2DX,
по-моему выбор элемента через byId гораздо быстрее запихивания всего дома в базу.
Ответить с цитированием
  #3 (permalink)  
Старый 02.10.2016, 08:04
Интересующийся
Отправить личное сообщение для JS2DX Посмотреть профиль Найти все сообщения от JS2DX
 
Регистрация: 20.04.2014
Сообщений: 23

Запись элементов в базу происходит один раз при загрузке. Для сайтов с тысячами элементов и десятками динамических страниц разница в производительности может оказаться существенной. Кэширование элементов одна из фич 2DX которая есть платформа одностраничного приложения.

Вот как определяются отдельные динамические страницы:


// дерево ДОМ:

[{div:{innerHTML:'A'}},
 {div:{innerHTML:'B',
       nodes:[{div:{innerHTML:'B_1'}},
              {div:{innerHTML:'B_2'}}]}},
 {div:{innerHTML:'C',
       nodes:[{div:{innerHTML:'C_1',
                    nodes:[{div:{innerHTML:'C_1_1'}}]}},
              {div:{innerHTML:'C_2'}}]}}]


// страницы с элементами (A), (B, B_1, B_2) и (C, C_1, C_1_1, C_2)
// определяются следующими псевдо "href" :

[0]                  // эл. A
[{1:[0,1]            // эл. B, B_1, B_2
[{2:[{0:[0]}, 1]}]   // эл. C, C_1, C_1_1, C_2
Ответить с цитированием
  #4 (permalink)  
Старый 02.10.2016, 22:02
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

JS2DX,
Подожди... я недопонял - ты предлагаешь вышеуказанным способом
[{div:{innerHTML:'A'}},

формировать дом?

Я с ума сойду с такими коллекциями
Ответить с цитированием
  #5 (permalink)  
Старый 03.10.2016, 20:53
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

JS2DX,
([]+{})[!+[]+!+[]<<+!+[]]
+(prompt+([]+[]))[+[+!+[]+[+[]]]-+!+[]]
+([![]]+[][[]])[+!+[]+[+[]]]
+([]+{})[+[+!+[]+[+[]]]/[!+[]+!+[]]]
+([]+{})[(+!+[]+!+[]+!+[]<<+!+[])+!+[]]
+(![]+[])[+[]]
+(+[][[]]+[]+[])[+!+[]]
+([![]]+[][[]])[+!+[]+[+[]]]
+(![]+[])[!+[]+!+[]];
Ответить с цитированием
  #6 (permalink)  
Старый 04.10.2016, 11:10
Интересующийся
Отправить личное сообщение для JS2DX Посмотреть профиль Найти все сообщения от JS2DX
 
Регистрация: 20.04.2014
Сообщений: 23

Это дерево в формате JSON, или вернее JS тк включает ф-ции и поддерживает ключи числового вида. Такой стринг может быть получен из БД сервера, например MongoDB, путем SQL. Вот пример целого дерева ДОМ (содержание сайта JS2DX.COM) http://js2dx.com/webdom.js


2DX
Ответить с цитированием
  #7 (permalink)  
Старый 04.10.2016, 15:49
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

JS2DX,
Ты вот хорошо думаешь про оптимизацию но твой путь добавляет лишнюю инстанцию между мной и браузерным домом - базу данных с деревом json
Просто есть фреймы с виртуальным домом которые тоже сохраняют куски дерева в памяти и проводят сравнения. Куски, не весь дом, только те которые я им скажу
Ответить с цитированием
  #8 (permalink)  
Старый 05.10.2016, 13:20
Интересующийся
Отправить личное сообщение для JS2DX Посмотреть профиль Найти все сообщения от JS2DX
 
Регистрация: 20.04.2014
Сообщений: 23

С частичной индексацией полная сериализация содержания веб страниц выглядела бы проблематичной. Сохранение 100% содержания, включая пользовательский ввод, одна из важных фич платформы.
Ответить с цитированием
  #9 (permalink)  
Старый 14.12.2016, 05:44
Интересующийся
Отправить личное сообщение для JS2DX Посмотреть профиль Найти все сообщения от JS2DX
 
Регистрация: 20.04.2014
Сообщений: 23

Движок загружает 20-50 тысяч ДОМ елементов без задержек, скоросто отображения страницы 10-20 мс. Загружаю страницу с >2миллионов элементов, база и страница работают нормально.

На сайте так же появился живой инструмент БД запросов.
Ответить с цитированием
  #10 (permalink)  
Старый 14.12.2016, 09:53
Аватар для xShift
Профессор
Отправить личное сообщение для xShift Посмотреть профиль Найти все сообщения от xShift
 
Регистрация: 22.11.2016
Сообщений: 212

Это все замечательно, но как вы собираетесь индексироваться поисковыми системами?

Непросто будет заставить поисковики выполнять ваш JS. И, если например, ссылки в JSON поисковик еще может проиндексировать, то у вас псевдо-href. Например, если есть уже готовый статический контент страницы(пусть даже генерируемый сервером) и ссылки вида http://domain.ru/url#anchor могут быть проиндексированы и сегментированы, то здесь речь идет о полной генерации контента средствами движка и поисковик просто не найдет точки входа.

Это проблема всех решений с rooter примочками(например ангуляр). Они просто отсутствуют в индексе, а значит - это проблема для бизнеса.

Последний раз редактировалось xShift, 14.12.2016 в 09:58.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инструменты, которые вы используете для разработки Safort Сборка проекта, утилиты 86 02.09.2015 14:11
Существует ли Тотал Коммандер для ВЕБ на основе JS? aRpi Javascript под браузер 9 26.05.2015 12:00