ASPX 或 ASHX 作为 ajax 服务器页面?
当考虑将结果返回到 javascrit 中的 ajax 调用的 ASP.NET ajax 服务器页面时,在性能/速度方面什么是最好的? ASPX 文件或 ASHX ?
Whats best in terms of performance/speed when considering a ASP.NET ajax server page which returns results back to the ajax calle in the javascrit ? an ASPX file or ASHX ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我认为最重要的问题是结果是否可缓存,如果是的话,它是否可以公开或私有缓存。
如果服务只是数据查找(而不是实际修改数据的调用),那么您可以设置启用客户端缓存的响应标头。如果数据也是公共数据,那么您可以设置响应头,以便代理服务器等可以缓存数据。如果经常请求数据,这可以减轻您的网络服务器的一些负载。
但这要求请求是 HTTP GET 操作,ASHX 文件可以处理该操作。但 WebMethod 将生成 HTTP POST。
因此,如果启用客户端响应缓存有意义,请选择 ASHX。例如,如果数据每秒都在变化,那么启用客户端缓存就没有意义。如果请求实际上修改了数据,那么缓存数据客户端也是没有意义的。
否则,我认为这一种方法或另一种方法不会有任何严重的性能问题。
I think the most important question is whether or not the result is cacheable, and if so, if it is publically or privately cacheable.
If the service is just a data lookup (as opposed to a call that actually modifies data), then you can set response headers that enable client side caching. If the data is also public data, then you can set the response headers so that proxy servers etc. can cache the data. And if the data is requested often, that can take some load off your web server.
But that requires the request to be an HTTP GET operation, which an ASHX file can handle. But the WebMethod will generate an HTTP POST.
So if enabling client caching of the response makes any sense, go for ASHX. If the data changes every second, for example, then it doesn't make sense to enable client caching. And if the request actually modifies data then it doesn't make sense to cache the data client side either.
Otherwise I don't think that there is any serious performance concern of the one method or the other.
我没有进行比较,但我认为如果您使用
页面方法
,那么它们的执行效果应该与 ASHX 相当,因为除了 ajax 请求中指定的一次之外,没有对其他方法的额外调用。I've not compared but I think if you are using
Page Methods
then they should perform comparably to ASHX as there is not extra calls to other methods except the once specified in ajax request.