zoukankan      html  css  js  c++  java
  • bulletproof ajax:ajax 载入时显示动画

    The simplest format for this kind of image is an animated GIF
    file. The exact image can be anything you like, as long as it features
    a smoothly looping animation. Rotating shapes, spinning
    arrows, and barbershop-pole progress bars are all popular conventions
    for indicating activity.
    Here’s a short function called displayLoading. It takes a single argument,
    which is an element in the document. This element is first emptied by removing
    all of its child nodes. Then, a newly created img element is appended.

    function displayLoading(element) {
    while (element.hasChildNodes()) {
    element.removeChild(element.lastChild);
    }
    var image = document.createElement("img");
    image.setAttribute("src","loading.gif");
    image.setAttribute("alt","Loading...");
    element.appendChild(image);
    }

    Now I can update the contact details example to use this function. I want to
    execute it at the same time that I’m starting the Ajax request in the grabFile
    function:

    function grabFile(file) {
    var request = getHTTPObject();
    if (request) {
    displayLoading(document.getElementById("details"));
    request.onreadystatechange = function() {
    parseResponse(request);
    };
    request.open("GET", file, true);
    request.send(null);
    return true;
    } else {
    return false;
    }
    }

    When a name is clicked, a GIF animation appears in the “details” div,which is where that person’s details will appear.

    Once the Ajax call is successfully completed, the loading image is obliterated
    by the use of innerHTML in the parseResponse function:

    function parseResponse(request) {
    if (request.readyState == 4) {
    if (request.status == 200 || request.status == 304) {
    var details = document.getElementById("details");
    details.innerHTML = request.responseText;
    }
    }
    }
  • 相关阅读:
    Javascript 公共代码(可重用)
    ExtJs之Ext.data.Store
    delete exists
    c++ builder adoquery sql语句的动态增加
    C++ XML解析之TinyXML篇
    oracle数据类型varchar2和varchar的区别
    adoquery查询结果如何赋给一个变量(delphi和c++ builder)
    没有安装 BCB 的机器上运行会提示 找不到 库之类
    select union 查询出来的结果,如何按指定顺序输出
    oracle 已有 表 增加 列
  • 原文地址:https://www.cnblogs.com/youxin/p/2666630.html
Copyright © 2011-2022 走看看