У нас есть Webmethod, написанный на Visual Basic, который мы вызываем через ajax.
В стороне от WebMethod есть вызов базы данных ADO.
Ajax был упрощен и теперь безпараметры как часть исследования.
Мы получаем отладку различий в производительности в WebMethod относительно того, сколько времени занимает строка .ExecuteReader.
Если вызов ajax находится внутри kendoGrid,Строка .ExecuteReader занимает около 15-20 секунд. Если мы подключим вызов ajax непосредственно к кнопке, то строка .ExecuteReader займет всего 5 секунд.
Есть идеи, почему мы наблюдаем это другое поведение?
Код сетки кендо -
, dataSource: {
transport: {
read: function (options) {
var jqXHR =
$.ajax({
type: "POST",
url: "./ws.asmx/getMetrics"
});
}
},
schema: {
data: "data", // records are returned in the "data" field of the response
total: "total" // total number of records is in the "total" field of the response
},
}
Ajax, который я подключил к кнопке, был
$.ajax({
type: "POST",
url: "./ws.asmx/getMetrics"
});
Часть веб-метода для обоих выглядит следующим образом и использует одну и ту же строку sql и connectionstring
Dim cmd As New SqlCommand(sql, conn)
With cmd
conn.Open()
.CommandTimeout = 1200
Dim rdr As SqlDataReader
rdr = .ExecuteReader
Dim results As New MetricResults
Return results
Любые идеичто мы делаем не так?