改进由jquery ajax调用的通用处理程序的响应时间
本文关键字:程序 响应时间 处理 调用 jquery ajax | 更新日期: 2023-09-27 18:13:56
我做了一个通用的处理程序(.ashx)来获取一些数据库值使用jquery ajax。我有几个问题:
-
为什么第一次调用处理程序总是最慢的一个?
-
是否有任何方法可以减少从HTTP-get/post点的响应时间,直到我从处理程序得到响应?我当前的代码看起来像这样:
public void ProcessRequest(HttpContext context) { HttpContext.Current.Response.ContentType = "application/json"; SOFAEntities ctx = new SOFAEntities(); JavaScriptSerializer serializer = new JavaScriptSerializer(); string systemKey = HttpContext.Current.Request["SystemKey"]; try { SYSTEM_AUDIT_SHEET auditSheet = ctx.SYSTEM_AUDIT_SHEET.Where(s => s.SYSTEM_KEY == systemKeyDec).Select(s => s).OrderByDescending(s => s.AUDIT_SHEET_VERSION).First(); HttpContext.Current.Response.Write(serializer.Serialize(auditSheet)); } catch (Exception e) { HttpContext.Current.Response.Write(serializer.Serialize(new ErrorObj() { ErrorMessage = e.Message })); } }
1:有几个可能的原因,这些原因加起来会使第一个请求变慢,比如:
- 代码必须被编译/jit
- 池中没有数据库连接,所以必须建立一个数据库连接
- 数据库请求没有缓存到数据库
2:您可以手动序列化对象,而不是使用使用反射的通用序列化器。