原生的 Javascript
<script src="js/ajax.js" type="text/javascript"></script>
<script type="text/javascript">
function fun(){
var reqUrl = "ashx/GetData.ashx";
if(GetObj("oDiv").innerHTML.length == 0){
oHttp.Get(reqUrl, "loadding", showinfo);
}
}
function showinfo(context){
if(context != "0"){
var reqObj = eval(context);
var tbRow = "";
for(var i = 0; i < reqObj.length; i++){
tbRow += "<tr><td>"+reqObj[i].dealerid+"</td><td>"+reqObj[i].dealername+"</td></tr>";
}
GetObj("oDiv").innerHTML = "<table>"+tbRow+"<table>";
}
else{
GetObj("oDiv").innerHTML = "<span style=\"color:#F00;\">暂无数据</span>";
}
}
</script>
/**
* Ajax.js
* @author DylanChan
*/
var oHttp =
{
XMLHttpRequest:function()
{
try
{
//创建XMLHttpRequest对象
var request = new XMLHttpRequest();
return request;
}
catch(ex)
{
var arrXMLHttpRequest = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
for(var i = 0; i < arrXMLHttpRequest.length; i++)
{
try
{
var request = new ActiveXObject(arrXMLHttpRequest[i]);
return request;
}
catch(oError)
{}
}
}
throw new Error("MSXML Is Not Installed On Your System!");
},
Get:function(requestURL, loadDiv, fnCallBack)
{
//获取XMLHttpRequest对象
var oRequest = oHttp.XMLHttpRequest();
if(oRequest)
{
//oRequest.open():创建新的Http请求,并指定此请求的提交方法,URL,以及验证信息
//get:用“Get”方式发送数据,只能256K
//requestURL:请求的URL,可以为绝对地址,或相对地址
//true:指定此请求方式为异步方式
oRequest.open("get", requestURL, true);
document.getElementById(loadDiv).innerHTML = "<img src=\"img/loadding.gif\" alt=\"loadding...\" style=\"width:39px; height:39px;\" />";
oRequest.onreadystatechange = function()
{
//0 - XMLHttpRequest对象还没有完成初始化,还没有调用send()方法
//1 - XMLHttpRequest对象开始发送请求(载入)已调用send()方法,正在发送请求
//2 - XMLHttpRequest对象的请求发送完成(载入完成)send()方法执行完成,已经接收到全部响应内容
//3 - XMLHttpRequest对象开始读取服务器的响应(交互)正在解析响应内容
//4 - XMLHttpRequest对象读取服务器响应结束(完成)响应内容解析完成,可以在客户端调用了
if(oRequest.readyState == 4)
{
if(oRequest.status == 200)
{
if(fnCallBack)
{
document.getElementById(loadDiv).style.display = "none";
fnCallBack(oRequest.responseText);
}
}
}
}
oRequest.send(null);
}
}
}
Jquery.Ajax 版
<script type="text/javascript">
function fun(){
var reqUrl = "ashx/GetData.ashx";
var reqUrl = "ashx/GetData.ashx";
var oDiv = $("#oDiv");
var userinfo = $("<table id=\"otb\"></table>");
var oTable = $("#otb");
if(oTable.length == 0){
oDiv.append(userinfo);
$.ajax({
url : reqUrl,
dataType : "json",
beforeSend : function(){
//加载动态的loadding图片
GetObj("loadding").innerHTML = "<img src=\"img/loadding.gif\" alt=\"loadding...\" style=\"width:39px; height:39px;\" />";
},
success : function(data){
$(data).each(function(){
var tbRow = $("<tr><td>"+this.dealerid+"</td><td>"+this.dealername+"</td></tr>");
$("#otb").append(tbRow);
});
},
complete : function(){
//数据加载完成后隐藏 loadding 层
GetObj("loadding").style.display = "none";
}
});
}
}
</script>
Jquery.getJSON 版
<script type="text/javascript">
function fun(){
var reqUrl = "ashx/GetData.ashx";
var oDiv = $("#oDiv");
var userinfo = $("<table id=\"otb\"></table>");
var oTable = $("#otb");
if(oTable.length == 0){
oDiv.append(userinfo);
$.getJSON(reqUrl, function(json){
$(json).each(function(){
var tbRow = $("<tr><td>"+this.dealerid+"</td><td>"+this.dealername+"</td></tr>");
$("#otb").append(tbRow);
});
});
}
}
</script>
<input type="button" onclick="fun()" value="查询" /><div id="loadding"></div>
<div id="oDiv"></div>
Ashx文件
string sql = "select dealerid, dealername from dealers";
System.Data.DataTable dt = DAL.DBConnection.GetDataSet(sql);
System.Text.StringBuilder sHtml = new System.Text.StringBuilder();
if (dt != null && dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
if (i != dt.Rows.Count - 1)
{
sHtml.Append("{\"dealerid\":\"" + dt.Rows[i]["dealerid"].ToString() + "\", \"dealername\":\"" + dt.Rows[i]["dealername"].ToString() + "\"},");
}
else
{
sHtml.Append("{\"dealerid\":\"" + dt.Rows[i]["dealerid"].ToString() + "\", \"dealername\":\"" + dt.Rows[i]["dealername"].ToString() + "\"}");
}
}
context.Response.Write("[" + sHtml.ToString() + "]");
}
else
{
context.Response.Write("0");
}
分享到:
相关推荐
学习这个实例,开发者将掌握如何在C#中实现异步Socket通信,包括连接、监听、发送和接收数据,这对于开发基于TCP/IP的网络应用程序至关重要。通过实践这个实例,你可以更好地理解异步编程的优势,并能够灵活地应用于...
本主题将聚焦于ECharts的基础折线图及其异步加载数据的方法。 首先,让我们了解一下ECharts中的基础折线图。折线图是一种常见的数据展示方式,适用于表现数据随时间变化的趋势。在ECharts中,创建一个基础折线图...
在这个实例中,我们将深入探讨如何使用Ajax提交数据、获取天气预报信息以及读取不同类型的服务器数据。 首先,让我们来看看如何使用Ajax提交数据更新服务器内容。在ASP.NET环境中,我们可以创建一个JavaScript函数...
在本文中,我们将深入探讨如何实现一个纯JavaScript的异步文件上传实例,这涉及到Web开发中的重要技术,如HTML5的File API、Ajax以及异步处理。我们将通过分析提供的文件来构建这一实例。 1. **HTML5 File API**:...
这个实例结合了Android的异步处理、XML解析和网络请求技术,展示了如何从豆瓣电影API获取数据并展示给用户。对于Android初学者,这是一个很好的学习项目,涵盖了实际开发中的关键技能。同时,使用Picasso或Glide来...
GridView通过适配器(Adapter)与数据源关联,显示数据列表。然而,当数据量大时,一次性加载所有数据可能导致内存压力增大,进而影响应用性能和用户体验。因此,异步加载成为解决这个问题的关键。 异步加载(Async...
这是在主线程中执行的方法,通常用于初始化操作,如显示进度条或对话框,准备执行异步任务所需的资源。 3. **doInBackground(Params...)**: 这是异步任务的核心,它在后台线程运行,可以执行耗时操作,如网络...
在这个“MFC异步数据库通讯完美实例”中,我们将深入探讨如何使用MFC进行客户端服务器通信,特别是涉及异步通信机制,这是现代网络应用中至关重要的技术。 首先,我们需要理解MFC中的异步通信机制。在MFC中,异步...
因此,"ListView异步加载图片实例"是一个重要的优化策略,它的目的是在不阻塞主线程的情况下加载图片,提升用户体验。 异步加载图片的基本原理是将图片的加载工作放在后台线程执行,完成后再更新到ListView的相应...
7. **用户界面交互**:展示通信状态,如连接状态、接收数据的显示、发送按钮等,可能使用MFC的控件和消息机制。 通过研究这个源码实例,开发者不仅可以了解如何在MFC环境中实现串口通信,还可以学习到如何在Windows...
本文主要围绕vue beforeRouteEnter异步获取数据并给实例赋值的问题进行了深入的探讨。 首先,需要了解Vue生命周期中路由钩子beforeRouteEnter的作用。它是Vue-router提供的一个导航守卫,用于在进入路由之前执行...
在AJAX的回调函数中,我们可以更新图表的数据,并显示出来。 在PHP端,需要做的是: 1. 使用include_once('connect.php');连接数据库。 2. 执行SQL查询语句,获取所需的数据。在本例中,SQL查询语句为select * ...
ListView控件是Windows Forms中的一个重要组件,用于显示多列数据。在这个实例中,我们使用它来展示下载任务。每个任务作为一个ListViewItem,可以包含多个SubItems,用于显示如文件名、状态、进度等信息。 4. **...
同样,它提供了异步读写方法,如`ReadAsync`和`WriteAsync`,用于在客户端和服务器之间异步传输数据。 5. **多文件并发传输**: 实例可能包含了管理多个文件并发传输的逻辑,通过异步操作的组合,可以同时处理多个...
在Android开发中,ListView是常用的数据展示控件,它能够高效地显示大量数据。然而,当ListView中的每个项都需要加载网络图片时,如果处理不当,可能会导致应用性能下降,用户体验变差。本实例将详细讲解如何实现...
本实例聚焦于`AsyncTask`,它是Android提供的一种轻量级异步处理机制,特别适合于进行UI线程与后台线程之间的数据交互。 `AsyncTask`类有三个泛型参数:`Params`、`Progress`和`Result`。`Params`表示后台任务的...
本篇文章将详细探讨通过Ajax实现异步提交的几个实例,尤其是自动完成功能。 一、Ajax基础 Ajax的核心是JavaScript对象XMLHttpRequest,它允许在后台与服务器进行数据交换,而不影响用户的界面体验。创建一个Ajax...
本实例将深入探讨Asp.net中的同步与异步编程,并结合客户对象的应用,来实现一个动态生成随机数并实时显示的功能。 首先,同步和异步编程是两种处理任务的方式。在同步编程中,代码按照顺序执行,一个任务必须等待...
### Jquery异步请求数据实例代码详解 #### 一、Jquery向aspx页面请求数据 **场景描述:** 此示例展示了如何使用jQuery库来实现客户端与服务器端的异步交互,具体而言,是如何从客户端(即浏览器)向一个ASP.NET...