автоматически генерировать JavaScript для обновления клиентского HTML по сравнению с предыдущим HTML? - PullRequest
0 голосов
/ 16 января 2010

Как вы думаете, будет сложно написать каркас, в котором mvc сравнивает последний вывод html с текущим html, который мы хотим вывести, и вместо отправки всего html выясните, что изменилось, и сгенерируйте js-код, который будет делать обновление по сравнению с предыдущим HTML? (предполагая, что ничего не было изменено вручную на клиенте с использованием js) ... может быть, идея для проекта codeplex? или может быть что-то подобное существует? если так, скажи. спасибо.

Ответы [ 4 ]

1 голос
/ 06 мая 2011

Мне кажется, это интересный вопрос, но без практического решения ..

Если я правильно понимаю, вы хотите сгенерировать diff из текущего DOM в новый, и вы хотите сгенерировать этот скрипт изменений (который выполняется на стороне клиента на JavaScript).

Проблема заключается в том, что для того, чтобы сервер генерировал diff, ему нужно знать, какой была предыдущая структура DOM, чтобы сравнить ее с новой (то есть с новой HTML-страницей)

Единственное, о чем я могу думать, это:

1. The client sends back the full current page or some representation of it.
2. The server stores a copy of the previous page.

Проблема с # 1 состоит в том, что вы уже отрицаете какую-либо выгоду от производительности. Отправка полной страницы обратно на сервер так же плохо или хуже, чем отправка ее с сервера клиенту. Вы можете достичь того же эффекта, запросив полное тело страницы через AJAX и заменив его, и это будет столь же эффективно и проще в реализации.

Проблема с # 2 заключается в том, что серверу нужны x копий каждой страницы, где x - количество пользователей. Это много памяти, если только вы не сохраняете ее на диск, в этом случае это запись на диск среднего размера для каждого запроса. Тогда возникает проблема выяснения того, как долго их хранить, потому что, если кто-то посещает сайт один раз, вы не захотите держать его там вечно.

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

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

0 голосов
/ 16 января 2010

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

Даже если это возможно, это не имеет смысла в «мире HTTP» imho.

0 голосов
/ 06 мая 2011

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

0 голосов
/ 16 января 2010

Рассматривали ли вы кеширование? Например. Кеширование в asp.net-mvc

Будет проще, и для меня это будет иметь больше смысла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...