2010-06-23 7 views
3

очень круто article о том, как facebook разбивает свою страницу на «проспекты», чтобы максимизировать работу, выполняемую сервером и браузером при создании сложной страницы, которая захватывает различные ресурсы (объявления, каналы, друзей и т. д.). они называют это большой пипой.внедрение BigPipe для .NET для повышения производительности

steve souders действительно говорил об этом на одном из своих разговоров, и он назвал его «ранним документом».

в .NET, вы не можете легко сделать это, но я сделал это, переопределив метод рендеринга и сброс буфера ответа раньше, так что это возможно, и это работает очень хорошо. но я никогда не пробовал его в этом большом масштабе. мой вопрос в том, можно ли построить BigPipe в .NET? они сказали, что построили их в Java и PHP. Я думаю, что это можно сделать и в .NET, но мне интересно, может ли архитектура winforms .NET быть субоптимальной для выполнения чего-то подобного.

Я рассматриваю вопрос о том, чтобы подталкивать проект к нашей компании, чтобы построить что-то подобное - но вам нужно будет сделать больше исследований, потому что это не будет небольшой проект. я хотел бы построить что-то, что могло бы помочь разбить любую произвольную страницу на эти «страницы». в .NET, возможно, было бы неплохо включить наши пользовательские элементы управления в эти «проспекты» и «вымыть» их все в кусках - стиль BigPipe.

комментарии/мысли?

ответ

3

Я реализовал версию BigPipe в веб-проекте ASP.Net MVC, путем раннего промывания и выполнения содержимого проспектов параллельно. Вы можете прочитать его на How To Implement BigPipe Using ASP.Net MVC и развить его на GitHub.

Этот метод прост в применении, если вы реализуете страницы в виде PartialViews, которые выполняются в конце документа HTML, непосредственно перед закрытием раздела <body>.

Кроме того, если вы хотите в полной мере воспользоваться преимуществами BigPipe, вы должны загрузить Javascript и CSS, необходимые для доступа к страницам, в определенной последовательности, обеспечивая лучший пользовательский интерфейс. BigPipe загружает ресурсы CSS параллельно, прежде чем вводить HTML-страницы на странице, и, когда каждый проспект был введен, он переходит к параллельной загрузке и исполнению Javascript.

+0

Привет, Хосе, если у вас есть время, я бы с радостью согласился с вами. Я следую вашему руководству прямо сейчас и пытаюсь реализовать bigpipe в моем проекте mvc, но мои страницы сохраняют рендеринг до моего родительского представления/макета. Это похоже на что-то очевидное? Я попытался взглянуть на ваш образец проекта, но он не открывается с VS 2013 – Adrian

+0

Привет @Adrian вам удалось заставить это решение работать? Я также пытаюсь заставить его работать. – Raha

+0

Да, я это сделал. С чем вы столкнулись? – Adrian

 Смежные вопросы

  • Нет связанных вопросов^_^