Этот способ не использует AJAX:
<div><script src="pageparts.aspx?partid=news"/></div>
<div><script src="pageparts.aspx?partid=weather"/></div>
<div><script src="pageparts.aspx?partid=email"/></div>
Как это работает: pageparts.aspx
испускает javascript, который создает соответствующую часть страницы. Детали не будут отображаться в любом предсказуемом порядке. Вы, вероятно, захотите исправить расположение частей, чтобы страница не перепрыгивала, когда она заполнялась.
В результате получается что-то вроде iGoogle.com (именно поэтому я использовал такие URL-адреса).
Ваш код на стороне сервера будет выглядеть так:
<asp:Repeater id="rpParts" runat="server">
<ItemTemplate>
<div><asp:Literal id="litPart" runat="server"/></div>
</ItemTemplate>
</asp:Repeater>
Вы генерируете тег <script>
в коде позади. Весь код, который фактически строит данные и помещает их в большой document.write()
, входит в pageparts.aspx
Это может не сработать, если вы разбиваете один большой запрос к базе данных на множество маленьких, потому что в итоге это может занять гораздо больше времени.
Редактировать
вся проблема в "коде, который
на самом деле строит данные "! Если я
может получить это как строку
Это не имеет большого смысла для меня. Что вы сейчас отправляете клиенту и как вы его строите?
Кроме того, для полноты картины приведем чисто не-JavaScript-подход:
<div><iframe src="part1.aspx"/></div>
<div><iframe src="part2.aspx"/></div>
<div><iframe src="part3.aspx"/></div>
Это некрасиво, и обычно выглядит так, будет работать, даже если у вас нет контроля над данными.