2012-06-19 37 views
0

民間,如何填補ASP.NET webforms中服務器端和客戶端之間的差距?

我想知道如何填補ASP.NET webforms中的服務器端和客戶端之間的差距,我怎樣才能從服務器端和vise verse觸發客戶端的東西? 如何從服務器端打開jQuery UI對話框?我怎樣才能獲得與回發模態對話框,例如,如果我有一個分頁的GridView內部的jQuery UI模式對話框,當用戶改變頁面關閉。 我需要知道什麼是最好的填補這個空白?

+0

答案之間常見的是SignalR –

回答

1

當談到服務器與Web環境中的客戶端進行交互時,您必須使用相當可靠的限制。我在這裏的答案將是通用的。

當你想將某些東西從客戶端傳遞到服務器時,通常很容易。一種相對常見的方式是通過AJAX。最近的ASP.NET WebForms通過<form>提交進行通信。

做相反的事情(即服務器向客戶端發起消息),這是一個更困難的用例。 HTTP,只是從它的實現方式來看,很容易使用client -> server,但是server -> client幾乎是不可能的。它只是不是爲此而設計的。沒有客戶端的服務器首先要求服務器發送客戶端的東西。這是一個大問題:客戶端如何知道服務器何時需要發送它?這種打敗的目的。

當然,目前有一些東西正在用來彌補這一點。其中一個更有希望的是web sockets,這是一種可靠的具體方法,允許服務器在客戶端沒有請求的情況下將消息推送到客戶端(請注意,IIS 7開箱即用不支持Web套接字據我所知)。另一個是彗星,甚至通過定期輪詢AJAX。

您似乎想要的功能的一個很好的包裝是SignalR。我已經使用它一段時間了,目前它似乎工作得很好。它在可用時使用web套接字,並在沒有時使用fallback。

1

Asp.net的默認解決方案是使用update panels。 這將創建一個Ajax請求並將它們發送到服務器。 (需要您的分頁問題的照顧。)

要在事件發生在服務器上打開的對話框:

HTTP是無連接的默認情況下,你會不會能夠做到這在asp.net出來的框。

你可以看看comet這樣的方法。這可以在asp.net中使用異步調用完成。網上有幾種comet samples using asp.net。但是它可能會涉及到代碼的重大更改。也有一些圖書館,如Signar可能有所幫助。

相關問題