`

异步显示数据实例

    博客分类:
  • Ajax
阅读更多
原生的 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完整应用实例

    学习这个实例,开发者将掌握如何在C#中实现异步Socket通信,包括连接、监听、发送和接收数据,这对于开发基于TCP/IP的网络应用程序至关重要。通过实践这个实例,你可以更好地理解异步编程的优势,并能够灵活地应用于...

    Echarts:基础折线图(含异步加载数据)

    本主题将聚焦于ECharts的基础折线图及其异步加载数据的方法。 首先,让我们了解一下ECharts中的基础折线图。折线图是一种常见的数据展示方式,适用于表现数据随时间变化的趋势。在ECharts中,创建一个基础折线图...

    Ajax异步读取数据

    在这个实例中,我们将深入探讨如何使用Ajax提交数据、获取天气预报信息以及读取不同类型的服务器数据。 首先,让我们来看看如何使用Ajax提交数据更新服务器内容。在ASP.NET环境中,我们可以创建一个JavaScript函数...

    纯JS异步上传文件实例

    在本文中,我们将深入探讨如何实现一个纯JavaScript的异步文件上传实例,这涉及到Web开发中的重要技术,如HTML5的File API、Ajax以及异步处理。我们将通过分析提供的文件来构建这一实例。 1. **HTML5 File API**:...

    android异步下载图片实例/解析xml实例

    这个实例结合了Android的异步处理、XML解析和网络请求技术,展示了如何从豆瓣电影API获取数据并展示给用户。对于Android初学者,这是一个很好的学习项目,涵盖了实际开发中的关键技能。同时,使用Picasso或Glide来...

    GridView异步加载实例

    GridView通过适配器(Adapter)与数据源关联,显示数据列表。然而,当数据量大时,一次性加载所有数据可能导致内存压力增大,进而影响应用性能和用户体验。因此,异步加载成为解决这个问题的关键。 异步加载(Async...

    一个AsyncTask异步任务的操作实例

    这是在主线程中执行的方法,通常用于初始化操作,如显示进度条或对话框,准备执行异步任务所需的资源。 3. **doInBackground(Params...)**: 这是异步任务的核心,它在后台线程运行,可以执行耗时操作,如网络...

    MFC异步数据库通讯完美实例

    在这个“MFC异步数据库通讯完美实例”中,我们将深入探讨如何使用MFC进行客户端服务器通信,特别是涉及异步通信机制,这是现代网络应用中至关重要的技术。 首先,我们需要理解MFC中的异步通信机制。在MFC中,异步...

    listView异步加载图片实例

    因此,"ListView异步加载图片实例"是一个重要的优化策略,它的目的是在不阻塞主线程的情况下加载图片,提升用户体验。 异步加载图片的基本原理是将图片的加载工作放在后台线程执行,完成后再更新到ListView的相应...

    MFC串口异步同步通信实例源码.zip

    7. **用户界面交互**:展示通信状态,如连接状态、接收数据的显示、发送按钮等,可能使用MFC的控件和消息机制。 通过研究这个源码实例,开发者不仅可以了解如何在MFC环境中实现串口通信,还可以学习到如何在Windows...

    详解vue beforeRouteEnter 异步获取数据给实例问题

    本文主要围绕vue beforeRouteEnter异步获取数据并给实例赋值的问题进行了深入的探讨。 首先,需要了解Vue生命周期中路由钩子beforeRouteEnter的作用。它是Vue-router提供的一个导航守卫,用于在进入路由之前执行...

    如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)

    在AJAX的回调函数中,我们可以更新图表的数据,并显示出来。 在PHP端,需要做的是: 1. 使用include_once('connect.php');连接数据库。 2. 执行SQL查询语句,获取所需的数据。在本例中,SQL查询语句为select * ...

    VB异步下载实例并用Listview列举任务显示进度条

    ListView控件是Windows Forms中的一个重要组件,用于显示多列数据。在这个实例中,我们使用它来展示下载任务。每个任务作为一个ListViewItem,可以包含多个SubItems,用于显示如文件名、状态、进度等信息。 4. **...

    C# 异步传输文件经典实例源码

    同样,它提供了异步读写方法,如`ReadAsync`和`WriteAsync`,用于在客户端和服务器之间异步传输数据。 5. **多文件并发传输**: 实例可能包含了管理多个文件并发传输的逻辑,通过异步操作的组合,可以同时处理多个...

    android listview异步加载图片实例(线程池+数据库+本地保存)

    在Android开发中,ListView是常用的数据展示控件,它能够高效地显示大量数据。然而,当ListView中的每个项都需要加载网络图片时,如果处理不当,可能会导致应用性能下降,用户体验变差。本实例将详细讲解如何实现...

    android异步操作实例

    本实例聚焦于`AsyncTask`,它是Android提供的一种轻量级异步处理机制,特别适合于进行UI线程与后台线程之间的数据交互。 `AsyncTask`类有三个泛型参数:`Params`、`Progress`和`Result`。`Params`表示后台任务的...

    Ajax 实现异步提交的几个实例

    本篇文章将详细探讨通过Ajax实现异步提交的几个实例,尤其是自动完成功能。 一、Ajax基础 Ajax的核心是JavaScript对象XMLHttpRequest,它允许在后台与服务器进行数据交换,而不影响用户的界面体验。创建一个Ajax...

    Asp.net同异步线程实例

    本实例将深入探讨Asp.net中的同步与异步编程,并结合客户对象的应用,来实现一个动态生成随机数并实时显示的功能。 首先,同步和异步编程是两种处理任务的方式。在同步编程中,代码按照顺序执行,一个任务必须等待...

    Jquery异步请求数据实例代码

    ### Jquery异步请求数据实例代码详解 #### 一、Jquery向aspx页面请求数据 **场景描述:** 此示例展示了如何使用jQuery库来实现客户端与服务器端的异步交互,具体而言,是如何从客户端(即浏览器)向一个ASP.NET...

Global site tag (gtag.js) - Google Analytics