Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   JSON DataSource in Applet (https://javascript.ru/forum/project/34839-json-datasource-applet.html)

zenia 21.01.2013 12:22

JSON DataSource in Applet
 
Вложений: 1
На страницу приходит json около 20000 записей. И нужна была сортировка и поиск в этом монстре (запрос к базе огромный, сервер старый MSSQL7.0 и база не моя).
В общем у меня возникла идея создать простой апплет в котором можно манипулировать данными и доставать от туда нужные куски.

//помещаем json в апплет
myApplet.putdata( "aaa", '[{ id:"1", name:"vasia" },{ id:"1", name:"petia" }]', "backFunction()");

//или просто через ссылку 
//правда почему-то не работает на Safari
myApplet.putfromurl( "aaa", "http://.................../data.php", "backFunction()");


//и затем достаем командой exec
//функция возвращает джсон ввиде текста
myApplet.exec("{ 'select':{table: 'aaa',limit: 300, where:{'col':'name', val:'vasia'}, orderby: {'col':'name', desc:'true'} }}", "backFunction()");

//функция вызывается после выполненния
function backFunction(){alert("Ok")}


и маленький примерчик в index.html


позже, если кому интересно, могу описать все, что умеет этот апплет.

kobezzza 21.01.2013 15:37

А зачем аплет то? Можно же на JS сделать тоже самое и будет работать оч шустро. К слову я уже давно пишу похожий велосипед на JS: http://collection-js.com (можешь глянуть если интересно).

zenia 21.01.2013 16:51

Цитата:

Сообщение от kobezzza (Сообщение 228555)
А зачем аплет то? Можно же на JS сделать тоже самое и будет работать оч шустро.

Конечно скорость JS неплохо подросла но все же бывают тормоза, может это болезнь некоторых броузеров. У меня есть ещё такие кадры с IE 7 :) А апплет стабильно и быстро, почти моментально сотирует и фильтрует.

DjDiablo 21.01.2013 19:47

а нафига 20000 на клиент приходят
почему нефильтруются ещё на сервере
даже если сервер не ваш то почему тогда ваш сервер не считывает инфу с не вашего сервера, не кеширует, и не фильтрует.

В корпоративных приложениях я просто подгружаю данные пакетом по 20-40 записей по мере надобности,
вся фильтрация, сортировка, группировка происходит на сервере.

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

kobezzza 21.01.2013 19:58

Для современных браузеров 20к не проблема, я сейчас тружусь над 3.9 версией своего велосипеда провожу различные замеры, в общем в среднем нормально можно работать без ключей и разведения по потокам где то до 5-ти миллионов записей, так что 20к ерунда.

DjDiablo 21.01.2013 20:05

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

всё проще, в гриде отобразится 1я сотня, затем юзер вобьёт данные в строку поиск, с сервера придёт одна запись. ENJOY
101 запись меньше чем, 20 000 , 300 000, и тем более 5 миллионов.
непонимаю нафига серверную логику на клиент тянуть.

kobezzza 21.01.2013 20:09

Цитата:

Сообщение от DjDiablo (Сообщение 228602)
непонимаю нафига серверную логику на клиент тянуть.

Случаи бывают разные и могу из личного опыта сказать, что когда я работал в Яндекс.Метрике, то у нас были такие задачи для некоторых отчётов.

zenia 21.01.2013 20:52

Я понимаю, это изврат 20000 записей, но бывает, что с чужими серверами не охота иметь дело.
Просто на прошлой неделе натолкнулся на обсуждение вашего велосипеда collection-js
и захотелось показать свой джсон костыль (так и назвал JsonDbCrutch-костыль)
В принципе нененужная вещь но всеже жалко выбрасывать, может кому пригодится.

DjDiablo 21.01.2013 22:25

понял
Тогда всё пучком :)


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