Jon*_*now 5 javascript sql-server asp.net jquery
所以我的jquery自动完成'工作',但它有点烦躁,因为每次keydown()触发时我都调用webservice方法,所以我得到很多方法挂起,有时让"auto"工作我必须键入它和退格有点因为我假设它的返回值有点慢.我已将查询结果限制为8以最小化时间.有什么我可以做的让这个更快一点吗?如果我没有让它更具响应性,这件事似乎几乎没用.
JavaScript的
$("#clientAutoNames").keydown(function () {
$.ajax({
type: "POST",
url: "WebService.asmx/LoadData",
data: "{'input':" + JSON.stringify($("#clientAutoNames").val()) + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
if (data.d != null) {
var serviceScript = data.d;
}
$("#autoNames").html(serviceScript);
$('#clientAutoNames').autocomplete({
minLength: 2,
source: autoNames,
delay: 100,
focus: function (event, ui) {
$('#project').val(ui.item.label);
return false;
},
select: function (event, ui) {
$('#clientAutoNames').val(ui.item.label);
$('#projectid').val(ui.item.value);
$('#project-description').html(ui.item.desc);
pkey = $('#project-id').val;
return false;
}
})
.data("autocomplete")._renderItem = function (ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a>" + item.label + "<br>" + item.desc + "</a>")
.appendTo(ul);
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
WebService.asmx
<WebMethod()> _
Public Function LoadData(ByVal input As String) As String
Dim result As String = "<script>var autoNames = ["
Dim sqlOut As Data.SqlClient.SqlDataReader
Dim connstring As String = *Datasource*
Dim strSql As String = "SELECT TOP 2 * FROM v_Clients WHERE (SearchName Like '" + input + "%') ORDER BY SearchName"
Dim cnn As Data.SqlClient.SqlConnection = New Data.SqlClient.SqlConnection(connstring)
Dim cmd As Data.SqlClient.SqlCommand = New Data.SqlClient.SqlCommand(strSql, cnn)
cnn.Open()
sqlOut = cmd.ExecuteReader()
Dim c As Integer = 0
While sqlOut.Read()
result = result + "{"
result = result + "value: '" + sqlOut("ContactID").ToString() + "',"
result = result + "label: '" + sqlOut("SearchName").ToString() + "',"
'result = result + "desc: '" + title + " from " + company + "',"
result = result + "},"
End While
result = result + "];</script>"
sqlOut.Close()
cnn.Close()
Return result
End Function
Run Code Online (Sandbox Code Playgroud)
我敢肯定,我只是在解决这个问题,或者没有更好地平衡通话或其他事情.
非常感激!
| 归档时间: |
|
| 查看次数: |
2153 次 |
| 最近记录: |