我在asp.net 4.0
和oracle 11G
上运行了一个Web应用程序
我正在使用ado.net
连接数据库服务器
我的应用程序正在使用大约15-20 generic-http-handlers
我从jquery打电话给那些generic-http-handler
我想使用更多这些,但我不确定这对我的应用的影响。
请提出更多generic-http-handers
更好的建议吗?
我正在浏览网页,了解concurrent http request
表单位于同一个域的同一个标签中我可以拥有多少browser
个。
我在这个主题上遇到了一个小众问题
How many concurrent AJAX (XmlHttpRequest) requests are allowed in popular browsers?
它建议你在jquery的ajax调用中使用async=true
,但它必须等到其他http request
完成。
它还建议你可以创建子域来克服这个问题。
现在有人可以建议我天气我应该去更多或不?
答案 0 :(得分:1)
我不确定你是否要问有20个处理程序定义是否太多,或者有来自jQuery的20个处理程序被调用,所以我将解决两者。
就定义许多处理程序而言,通用HTTP处理程序(ASHX)类似于ASP.NET页面处理程序(ASPX),但更轻量级,因为它没有完整的生命周期一个页面,并不用于返回UI。许多大型应用程序定义了数百个ASPX页面,这与ASP.NET Web Forms的设计意图一致,其中每个UI页面都是一个独特的ASPX。因此,拥有数百个ASHX,甚至比数百个ASPX更重,并且完全没问题。
就调用 20个处理程序而言,我们进入了关于“chunky”与“chatty”接口的对话。当通过WAN(即浏览器和服务器之间)进行接口时,“矮胖”接口(较少数量的较重呼叫)更好:当您尝试扩展应用程序时,一个“聊天”界面(一个使用更多数量的打火机呼叫将在服务器上保持打开更多连接,在更多的事务处理和更多的打开同时连接方面经常会对数据库造成更多负载,因此通常也不会扩展在服务器端。
在浏览器方面,新闻更糟糕。根据HTTP规范,浏览器将您限制为两个同时发出的请求,因此如果您要同时触发20个请求,则不会发生这种情况,这意味着您可能会因为排队等待很多jquery get / post调用而遇到一些性能问题一次。
当然,权衡是通常编程通常更清晰,具有“健谈”的界面。所以在这里你必须对未来的扩展需求做出判断,而不是清洁代码的重要性。
我想说,如果你正在构建一个应用程序,它可以在预期的生命和发展过程中轻松地在单个Web和单个数据库服务器上运行所有流量;并且,您的浏览器代码的设置方式使得2个并发请求不会导致任何性能问题,那么如果它为您提供多更清洁,那么选择“聊天”界面是合理的码。
但是,如果您希望在单个服务器之外进行扩展,那么;或者,有一些常见的用例,其中许多jquery get / posts将同时被调用并妨碍性能,然后通过各种方式我将重构为更“粗”的接口,这意味着不会从单个调用超过20个处理程序页面通过jQuery。
如果您已阅读此内容但仍无法确定哪个是正确的,那么我建议您重构界面以使其更“粗”。
希望这有帮助,祝你好运!