1

我有一个运行在asp.net 4.0和上的 Web 应用程序oracle 11G
我正在使用ado.net连接数据库服务器。
我的应用程序在 15-20 左右使用一切就绪generic-http-handlers
generic-http-handler从 jquery 调用那些。
我想使用更多这些,但我不确定这对我的应用程序的影响。

请建议多买点好主意generic-http-handers吗?

编辑 1

我正在通过网络找出concurrent http request我可以在同browser一个域的表单的同一个选项卡中拥有多少个。
我遇到了一个关于这个主题的小众问题
在流行的浏览器中允许多少并发 AJAX (XmlHttpRequest) 请求?

它表明,尽管您async=true已经从 jquery 进行了 ajax 调用,但它必须等到其他调用http request完成。

它还建议您可以创建子域来克服这个问题。

现在有人可以建议我天气我应该多去还是不去?

4

1 回答 1

1

我不确定您是否要问定义20 个处理程序是否太多,或者从 jQuery调用20 个处理程序是否太多,所以我将同时解决这两个问题。

定义许多处理程序方面,通用 HTTP 处理程序 (ASHX) 类似于 ASP.NET 页面处理程序 (ASPX),但更轻量级,因为它没有页面的完整生命周期,并且不用于返回 UI . 许多大型应用程序定义了数百个 ASPX 页面,这与 ASP.NET Web 窗体的设计意图是一致的,其中每个 UI 页面都是一个不同的 ASPX。因此,拥有数百个 ASHX,将比数百个 ASPX 更轻,完全没有问题。

调用20 个处理程序而言,这里我们进入关于“矮胖”与“健谈”接口的对话。当通过 WAN 连接(即浏览器和服务器之间)时,“粗大”的接口(产生较少数量的繁重调用的接口)更好:当您尝试扩展应用程序时,“健谈”的接口(使更多的较轻的调用)将在服务器上保持打开更多的连接,通常会在更多的事务和更多打开的同时连接方面导致更多的数据库负载,因此通常不会扩展在服务器端。

在浏览器方面,消息更糟。根据 HTTP 规范,浏览器将您限制为两个同时请求,因此如果您打算同时触发 20 个请求,它不会发生,这意味着您可能会因为有这么多 jquery get/post 调用排队而遇到一些性能问题一次。

当然,折衷方案是编程通常更简洁,具有“健谈”的界面。所以在这里你必须对你未来的扩展需求做出判断,而不是更干净的代码的重要性。

我会说,如果你正在构建一个应用程序,它的预期寿命和发展,可以舒适地在单个 Web 和单个数据库服务器上运行其所有流量;而且,您的浏览器代码的设置方式使得 2 个同时请求不会给您带来任何性能问题,那么如果它为您提供清晰的代码,那么选择“聊天”界面是合理的。

但是,如果您预计需要扩展到单个服务器之外;或者,在一些常见的用例中,这些 jquery get/posts 中的许多将被同时调用并妨碍性能,那么我无论如何都会重构为一个更“矮胖”的接口,这意味着不会从单个调用超过 20 个处理程序页面通过 jQuery。

如果您已经阅读了这篇文章,但仍然无法确定哪个是正确的,那么我建议您重构界面以使其更加“厚实”。

希望这对您有所帮助,并祝您好运!

于 2013-02-15T05:48:55.990 回答