目前我的项目大多数就是采用这样的模式。
2)接着,如果使用jQuery的$.ajax调用并且最后JSON加载数据:
代码
function bindDatajQueryAjaxJson() {
var watch = new Stopwatch();
watch.start();
$.ajax({
url: "JsonHandler.ashx",
dataType: 'json',
cache: false,
success: function(data) {
var builder = new Sys.StringBuilder();
for (var i = 0, length = data.length; i < length; i++) {
builder.append(String.format("
UserId:{0}, UserName:{1}, Email:{2}
", data[i].UserId, data[i].UserName, data[i].Email));
}
$("#msg4").html(builder.toString());
watch.stop();
$("#time4").html("用时:" + watch.ms + "毫秒.");
}
});
}
var watch = new Stopwatch();
watch.start();
$.ajax({
url: "JsonHandler.ashx",
dataType: 'json',
cache: false,
success: function(data) {
var builder = new Sys.StringBuilder();
for (var i = 0, length = data.length; i < length; i++) {
builder.append(String.format("
UserId:{0}, UserName:{1}, Email:{2}
", data[i].UserId, data[i].UserName, data[i].Email));
}
$("#msg4").html(builder.toString());
watch.stop();
$("#time4").html("用时:" + watch.ms + "毫秒.");
}
});
}
通过JsonHandler.ashx的页面处理程序执行返回数据:
代码
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "application/x-javascript";
int count = Convert.ToInt32(ConfigurationManager.AppSettings["DataCount"]);
List list = new List();
for (int i = 0; i < count; i++)
{
list.Add(new UserInfo { UserId = i, UserName = "leepy" + i, Email = "sunleepy" + i + "@gmail.com" });
}
StringBuilder builder = new StringBuilder();
string data = "[";
for (int i = 0, length = list.Count; i < length; i++)
{
data += "{" + string.Format("'UserId':'{0}','UserName':'{1}', 'Email':'{2}'", list[i].UserId, list[i].UserName, list[i].Email) + "},";
}
data = data.TrimEnd(',') + "]";
context.Response.Write(data);
}
context.Response.ContentType = "application/x-javascript";
int count = Convert.ToInt32(ConfigurationManager.AppSettings["DataCount"]);
List list = new List();
for (int i = 0; i < count; i++)
{
list.Add(new UserInfo { UserId = i, UserName = "leepy" + i, Email = "sunleepy" + i + "@gmail.com" });
}
StringBuilder builder = new StringBuilder();
string data = "[";
for (int i = 0, length = list.Count; i < length; i++)
{
data += "{" + string.Format("'UserId':'{0}','UserName':'{1}', 'Email':'{2}'", list[i].UserId, list[i].UserName, list[i].Email) + "},";
}
data = data.TrimEnd(',') + "]";
context.Response.Write(data);
}
也是3000条用户数据,运行加载结果为:

比WebService快了一些。