`

.NET MVC 给loading数据加 ajax 等待loading效果

阅读更多

在常用的门户社交类网站中 我们往往会注意到在loading数据的时候 会出现一个loading的效果

对我个人来讲,这样的效果有三个好处...

1,让我们知道我们点击了请求 这时是有回应的

2,防止用户在loading数据的时候点击别的按钮 出现混乱

3,AJax 请求数据更加专业 显得我们的网站更加 friendly-UI

闲话少说,我们开始来讲 如何在网站中 .Net MVC3中正常运用ajax添加这一效果

 

<!DOCTYPE html>
<html>
    <head>
        <title>@ViewBag.Title</title>   
        <style type="text/css">
/*后面通过设置position、top、bottom、left和right是它可以遮住整个页面,
并且将其背景设置为黑色。*/
            .hide{display:none }
            .progress{z-index: 2000}
            .mask{position: fixed;top: 0;right: 0;bottom: 0;left: 0; z-index: 1000; background-color: #000000}
        </style>     
        <script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")"></script>
       
    </head>
    <body> 
        <div>@RenderBody()</div>
        <img id="progressImgage" class="progress hide" alt="" src="@Url.Content("~/Images/ajax-loader.gif")"/>
        <div id="maskOfProgressImage" class="mask hide"></div>
    </body>
</html>

 在这里 我用GIF图片和<div>遮罩 定义在布局中,并为他们加上相应的css 样式

其中gif图片和遮罩 div的 z-index 分别为2000 & 1000。(只要前者比后者大即可 ,让gif显示在最上层即可)

 

接下来, 我们通过为jquery定义一个方法ajax2 实现ajax调用

该方法依然调用$.ajax(options)来实现ajax调用

在ajax2方法中我们队options的参数compelte实现封装

让可以显示的gif图片和div隐藏起来,同时覆盖了 options的async属性,

这样 总是以异步的方式来执行。

因为这样浏览器才能不被锁住 gif图片才能正常显示。再用$.load(options)进行ajax请求之前 我们将gif图片显示出来 ,并对他们进行相应的设置。

 <script type="text/javascript">
            $(function () {
                $.load= function (options) {
                    var img = $("#progressImgage");
                    var mask = $("#maskOfProgressImage");
                    var complete = options.complete;
                    options.complete = function (httpRequest, status) {
                        img.hide();
                        mask.hide();
                        if (complete) {
                            complete(httpRequest, status);
                        }
                    };
                    options.async = true;
                    img.show().css({
                        "position": "fixed",
                        "top": "50%",
                        "left": "50%",
                        "margin-top": function () { return -1 * img.height() / 2; },
                        "margin-left": function () { return -1 * img.width() / 2; }
                    });
                    mask.show().css("opacity", "0.1");
                    $.ajax(options);
                };
            });
        </script>

 最后我们进行ajax调用的时候 去call 这个方法即可 $.load。

<a href="#" id="load">Load</a>
<div id="result"></div>
<script type="text/javascript">
    $("#load").click(function () {
        $.ajax2({
            url: '@Url.Action("GetContacts")',
            success: function(result)
            {
                $("#result").html(result);
            }
        });
    });
</script>

 

0
0
分享到:
评论

相关推荐

    瀑布流分页加载asp.net mvc demo

    在ASP.NET MVC中,可以创建一个返回JSON格式数据的Action方法,用于处理Ajax请求。 4. **控制器(Controller)**:在ASP.NET MVC中,控制器负责处理HTTP请求并返回视图或数据。在瀑布流分页的场景下,控制器需要...

    ASP.NET利用MVC框架及JQuery技术实现登录、分页及等待

    综上所述,这个主题涵盖了ASP.NET MVC的登录实现、JQuery驱动的数据分页和等待效果,是Web开发中常见的功能实现,对于提升用户体验和网站性能具有重要意义。通过深入理解和掌握这些技术,开发者能构建出更加高效和...

    asp.net mvc core 使用js dialog对话框

    ASP.NET MVC Core是一个强大的Web应用程序开发框架,它允许开发者构建高度可维护和可测试的Web应用。在ASP.NET MVC Core中,与JavaScript交互是常见的需求,特别是在需要弹出对话框来增强用户交互体验时。本篇文章将...

    asp.net mvc3Movie Store

    ASP.NET MVC3是一个用于构建动态网站的开源框架,它基于微软的ASP.NET技术栈,提供了模型-视图-控制器(MVC)设计模式,使得开发者能够更清晰地分离应用程序的业务逻辑、用户界面和数据访问层。在这个"Movie Store...

    mvc上传文件PDF预览文件

    在ASP.NET MVC框架中,开发者可以利用这一模式构建高效、可维护的Web应用。 要实现在MVC中上传文件,我们通常会创建一个控制器(Controller)方法来处理HTTP POST请求。这个方法将接收上传的文件,并将其保存在...

    MVCJqueryTreeTable

    **MVCJqueryTreeTable** 是一个基于**MVC(Model-View-Controller)**架构和**jQuery**库实现的项目,旨在展示如何在Web应用中动态加载数据并实现局部刷新功能,特别是针对树形表格(TreeTable)的展现。在这样的...

    asp.net-jquery树

    2. **AJAX交互**:使用jQuery的$.ajax()或$.getJSON()方法发起异步请求到ASP.NET的Web服务或Web API接口,获取数据。 3. **前端渲染**:当服务器返回数据后,jQuery可以解析这些数据,并利用它们来动态构建HTML结构...

    ASP.NET无限极分类

    在ASP.NET MVC或ASP.NET Core中,视图模型的设计也很关键。你可以创建一个专门的视图模型来承载分类信息,包括ID、Name、ParentID以及一个列表来存储其子分类。在视图中,使用递归模板或迭代来渲染无限级分类。 在...

    asp.net+JQuery瀑布流(可从后台获得页码动态加载)

    在本例中,我们需要创建一个ASP.NET Web API或MVC控制器来处理请求,包括获取页码并根据页码查询数据库中的内容。这通常涉及到SQL查询或者ORM框架(如Entity Framework)的使用,以便将数据转化为易于传输的JSON格式...

    .net Ext 开发

    在.NET Ext开发中,我们通常会利用ASP.NET或者MVC框架作为后端,而ExtJS作为前端展示层,通过Ajax通信实现前后端数据的交换。 对于数据库的增、删、改、查(CRUD操作),.NET Ext开发提供了直观且高效的解决方案。...

    ASP.NET设计模式-杨明军译(源码)

    8.4.2 ASP.NET MVC框架 8.4.3 利用AutoMapper映射ViewModel 8.4.4 Castle MonoRail 8.5 Page Controller模式 8.6 小结 第9章 用户体验层 9.1 什么是AJAX 9.2 使用JavaScript库 9.3 理解AJAX模式 9.3.1 ...

    ASP.NET Ajax引擎盖下的秘密

    ASP.NET AJAX,全称为Asynchronous JavaScript and XML,是微软为.NET Framework 2.0引入的一个扩展,用于构建富客户端Web应用程序。它允许开发者在不刷新整个页面的情况下与服务器进行交互,提高了用户体验。本文将...

    25SecretsForFasterASP.Net-英文原版.zip

    8. **利用ASP.NET MVC的ActionFilter**:通过ActionFilter实现缓存、日志、权限检查等功能,提高代码复用性和性能。 9. **控制应用程序池配置**:调整应用程序池的配置,如工作进程回收、最大请求限制等,以适应...

    jquery+ajax分页(新)

    本实例中,我们将深入探讨如何利用jQuery、AJAX以及Spring MVC框架实现一个简单的分页功能,数据库环境为MySQL。 **一、jQuery与AJAX基础** jQuery是一个轻量级的JavaScript库,它简化了DOM操作、事件处理和Ajax...

    C# MVC4 easyui datagrid expand row

    ASP.NET MVC4是Microsoft提供的一个开源Web应用程序框架,用于构建可维护、可扩展和测试的Web应用。它遵循模型-视图-控制器(MVC)设计模式,提供对HTML5和jQuery的内置支持。 接下来,jQuery EasyUI是一个基于...

    jquery模拟微博向下不断滚动特效.rar

    当用户滚动至页面底部时,`loading`变量设为`true`以防止重复请求,并发送一个Ajax请求获取新数据。成功获取数据后,将新数据添加到页面底部,增加当前页数,并重置`loading`为`false`。如果请求失败,显示错误提示...

    struts2中使用ajax

    Struts2是一个非常流行的Java Web框架,它提供了一种组织MVC(模型-视图-控制器)架构的方式,便于开发人员构建动态、交互式的Web应用。在Struts2中使用Ajax,可以实现页面的部分更新,提高用户体验,而无需每次操作...

    ajax示例代码

    Ajax的核心是JavaScript对象XMLHttpRequest,它允许在后台与服务器交换数据并更新部分网页内容。通过创建XMLHttpRequest对象、打开连接、发送请求、接收响应四个步骤,实现页面的异步通信。 1. **创建...

    Web进度条

    Web进度条是网页UI设计中的一个重要元素,它用于向用户展示某个操作的进度,比如文件上传、数据加载或计算过程。在.NET框架下,开发人员可以利用多种技术来实现Web进度条,为用户提供更好的交互体验。 一、ASP.NET ...

Global site tag (gtag.js) - Google Analytics