From: kmeaw
Date: 2020-08-17 21:36:27Z
Параллель с BBS очень понравилась.
Осталось придумать, как решить следующие проблемы:
1) Когда пользователь использует современный веб, то у него загружается
страничка с ресурсами, дальше он её читает, и в это время у него может
не быть связности с тем сервером, где эта страница находится. Типичный
сценарий для человека, который едет в метро — открыл несколько вкладок,
вагон приехал на станцию, все вкладки загрузились, можно читать.
Дочитал страницу, захотел перейти с неё по ссылке — отправляешь вкладку
грузить следующую страницу, а пока поезд едет, читаешь другие вкладки.
Этот сценарий важен, так как мобильных юзер-агентов в современном вебе
больше, чем всех остальных.
В случае с VNC-подобным протоколом надо сделать так, чтобы страницу
можно было хотя бы скроллить без сети. Можно попытаться передавать
виртуальный экран, представляющий собой очень узкую и длинную колонку,
что-то вроде 1920x10000, со скроллом на клиентской стороне. Но тогда не
получится реализовать стилизованный прогресс-бар, эффекты при прокрутке
и бесконечныо-прокручиваемые страницы.
2) Современная вёрстка предполагает, что ширина экрана может быть любой.
Хуже того, она может меняться прямо во время просмотра страницы — сейчас
пользователь может ресайзить окошко с браузером, а телефон поворачивать
на бок.
Текущие браузеры умеют делать reflow всего содержимого в оффлайне.
Как реализовать похожее поведение в твоей концепции? Унести box model на
клиента?
3) Переходы с одного сайта на другой и новые окна/вкладки. Сейчас я могу
открыть страницу (например результатов поиска), а оттуда попасть на
другую страницу, которая находится на совсем другом сервере. Чтобы
сделать что-то похожее в VNC, надо научить его делать редиректы с
сервера на сервер. И по команде с сервера открывать новые подключения к
другим VNC-серверам.
X11 доволно плохо работает через интернет — при использовании
современных тулкитов и растеризатором шрифтов он требователен как к
latency, так и к bandwidth, так что кроме как по локальной сети не
работает. Мне понравилось, как работает Xpra, то там, как и в RDP,
передаётся пожатый растр.
Если совсем упороться, то можно ещё развить эту идею с 2D до 3D, и
передавать не canvas со страничкой, а карту с состоянием объектов, как в
каком-нибудь DooM. Раньше был VRML, но в нём не решили задачу бесшовного
перехода с одного документа на другой.
From: Sergey Matveev
Date: 2020-08-18 08:16:46Z
*** kmeaw [2020-08-18 00:33]:
>Осталось придумать, как решить следующие проблемы:
Я же всего лишь предлагал концепт, а не буквально готовое решение :-)
Даже в BBS-ках же тоже были протоколы сжатия передаваемых ANSI-изображений
(только сейчас задумался и понял что они наверное бессмысленны стали
когда модемы стали самостоятельно жать передаваемый трафик).
>1) Когда пользователь использует современный веб, то у него загружается
>страничка с ресурсами, дальше он её читает, и в это время у него может
>не быть связности с тем сервером
Насколько понимаю, о связанности сейчас уже давно никто не думает и все
априори считают что Интернет есть всегда и везде. Ну да, возможно кроме
переходов в туннеле в метро. А если думать о связанности, то
"современный web" вообще малоюзабелен, с моей точки зрения, ибо всё
больше всего переносится в online, даже страничку не сохранить на диск.
>В случае с VNC-подобным протоколом надо сделать так, чтобы страницу
>можно было хотя бы скроллить без сети. Можно попытаться передавать
>виртуальный экран, представляющий собой очень узкую и длинную колонку,
>что-то вроде 1920x10000, со скроллом на клиентской стороне. Но тогда не
>получится реализовать стилизованный прогресс-бар, эффекты при прокрутке
>и бесконечныо-прокручиваемые страницы.
У меня тоже первой мыслью было виртуальное разрешение большого размера.
А всё остальное что назвали: да и слава богу что не будет, ибо
практической пользы нет :-). И это я серьёзно считаю что *абсолютно*
пользы от финтифлюшек нет, кроме траты моего времени пока они
анимируются, вместо моментального показа что уже подгружено. А
бесконечный scroll... надеюсь я передам всё своё негодование об это
технологии, как это сделали бы какие-нибудь яростные религиозные
фанатики, сказав что это творение самого Сатаны :-)! Если бы лозунгом
было "let's make web usable again!", то я бы начал с уничтожения этой
идеи бексконечного scroll-а.
>2) Современная вёрстка предполагает, что ширина экрана может быть любой.
>Хуже того, она может меняться прямо во время просмотра страницы
Если это может делать броузер в текущем месте, то не вижу проблем
отсылать событие об изменении геометрии окна. Ведь такой сигнал же даже
есть и в терминальных приложениях.
>3) Переходы с одного сайта на другой и новые окна/вкладки.
Да, это тоже надо будет уметь совместисть с клиентом и говорить ему о
переходе на другие вкладки.
>X11 доволно плохо работает через интернет
Повторюсь, что я всего-лишь концепт описывал. И само собой текущие
решения нужно до него доработать. Просто, как мне кажется, это очень не
много усилий, зато аналогичный результат в виде... современной
web-странички (малоюзабельной, с моей точки зрения, но передающей все
хотелки автора). Раз уж смогли сделать современные страницы такими, что
даже на Core i7 с кучей RAM всё умудряется дико тормозит и потреблять
трафика и заставлять менять/обновлять framework-и и, соответственно,
броузеры каждые полгода/год, то уж написать то VNC/RDP/X11/whatever
решение тем более могут.
Основная проблема, тоже повторюсь, как я её вижу: выполнение *моим*
компьютеров непойми какого недоверенного кода, чего я допускать не
собираюсь. Для 99% всех задач Web-а достаточно HTML3/4(?) и возможно
маааленький subset CSS (красным там что-нибудь подчеркнуть). Но
"удалённый доступ" к ресурсу будет схож по неюзабельности с современными
web-сайтами, а при грамотной реализации, куда экономнее по трафику и тем
более CPU/RAM.