Преосмислете интерфейса
Първо, дизайнът на потребителския интерфейс, който показва 50-100 000 реда на клиент, вероятно не е най-добрият потребителски интерфейс на първо място. Не само, че голямо количество данни за изпращане на клиента и за управление на клиента и може би е непрактично за някои мобилни устройства, но очевидно има много повече редове, отколкото всеки отделен потребител ще прочете при всяко взаимодействие с страницата. Така че, първата поръчка може да бъде да се преосмисли дизайна на потребителския интерфейс и да се създаде някакъв вид интерфейс, по-зависим от търсенето (страници, виртуално превъртане, набиране с букви и т.н.). Има много различни възможности за различен (и да се надяваме по-добър) дизайн на потребителския интерфейс, който намалява количеството пренос на данни. Кой дизайн би бил най-добър зависи изцяло от данните и вероятните модели на използване от потребителя.
Изпращане на данни на парчета
Въпреки това, ако искате да прехвърлите толкова много данни на клиента, тогава вероятно ще искате да ги изпратите на парчета (групи от редове наведнъж). Идеята с парчетата е, че изпращате консумативно количество данни в една част, така че клиентът да може да ги анализира, да ги обработи, да покаже резултатите и след това да бъде готов за следващата част. Клиентът може да остане активен през цялото време, тъй като има налични цикли между части за обработка на други потребителски събития. Но изпращането му на парчета намалява режийните разходи за изпращане на отделно съобщение за всеки отделен ред. Ако вашият сървър използва компресия, тогава chunks също дават по-голям шанс за ефективност на компресията. Колко голям трябва да бъде парчето (например колко реда данни трябва да съдържа) зависи от куп фактори и вероятно най-добре се определя чрез експериментиране с вероятни клиенти или клиент с най-ниска мощност. Например, може да искате да изпратите 100 реда на съобщение.
Използвайте ефективен формат за прехвърляне на данните
И ако използвате socket.io за прехвърляне на големи количества данни, може да искате да прегледате отново как използвате формата JSON. Например, изпращането на 100 000 обекта, които всички повтарят точно едни и същи имена на свойства, не е много ефективно. Често можете да измислите свои собствени оптимизации, които избягват повтарянето на имена на свойства, които са абсолютно еднакви във всеки обект. Например, вместо да изпращате 100 000 от тези:
{"firstname": "John", "lastname": "Bundy", "state": "Az", "country": "US"}
ако всеки един обект има точно същите свойства, тогава можете или да кодирате имената на свойствата във вашия собствен код, или да изпратите имената на свойствата веднъж и след това просто да изпратите разделен със запетая списък със стойности в масив, който получаващият код може да постави в обект със съответните имена на свойства:
["John", "Bundy", "Az", "US"]
Понякога размерът на данните може да бъде намален с 2-3 пъти чрез просто премахване на излишната информация.