suchen
HeimJavajavaLernprogrammTeilen Sie ein Beispiel-Tutorial zur Verwendung von Ajax zur Implementierung eines prozentualen Fortschrittsbalkens

 Anforderung: Beim Ausführen von Vorgängen wie Dateiübertragung und -speicherung über große Entfernungen kann auf der Seite ein Fortschrittsbalken mit einem Prozentsatz angezeigt werden, um dem Benutzer ein gutes interaktives Erlebnis zu bieten

Implementierungsschritte

JSP-Seite

1. Tabellen-Tag hinzufügen


   


  
             
正在进行保存,用时较长,请稍后...    
   
  
 

Dieses Tabellen-Tag sollte ausgeblendet und angezeigt werden, wenn der Fortschrittsbalken ausgeführt wird . Die IDs tdOne und tdTwo sind die blauen bzw. grauen Bereiche des Fortschrittsbalkens.

2. JS-Code hinzufügen

/**添加带百分比的进度条*/var xmlHttp;//创建ajax引擎function createXMLHttpRequest() {      if (window.XMLHttpRequest) {
          xmlHttp = new XMLHttpRequest();
        } else if (window.ActiveXObject) {          try {
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
          } catch (e1) {try {
                  xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e2) {
                }
          }
        }
    }    function loading() {
        createXMLHttpRequest();
        clearLoad();var url = "elecCommonMsgAction_progressBar.do";
        xmlHttp.open("GET", url, true);
        xmlHttp.onreadystatechange = createCallback;
        xmlHttp.send(null);
    }    function createCallback() {if (xmlHttp.readyState == 4) {if (xmlHttp.status == 200) {//每隔1秒钟执行一次percentServer()方法,直到当前访问结束setTimeout("percentServer()", 1000);
            }
        }
    }    function percentServer() {
        createXMLHttpRequest();var url = "elecCommonMsgAction_progressBar.do";
        xmlHttp.open("GET", url, true);
        xmlHttp.onreadystatechange = updateCallback;
        xmlHttp.send(null);
    }    function updateCallback() {if (xmlHttp.readyState == 4) {if (xmlHttp.status == 200) {//获取XML数据中的percent存放的百分比的值var percent_complete = xmlHttp.responseXML.getElementsByTagName("percent")[0].firstChild.data;var tdOne = document.getElementById("tdOne");var progressPersent = document.getElementById("progressPersent");//改变蓝色区域的宽度tdOne.width = percent_complete + "%";//将百分比的数值显示到页面上progressPersent.innerHTML = percent_complete + "%";//如果计算获取的百分比的数值没有达到100,则继续调用方法,直到操作结束为止if (percent_complete 

Wenn Sie auf Speichern klicken, führen Sie die Methode „loading()“ aus.

Aktionsklasse

progressBar()-Methode

/**  
    * @throws Exception 
     * @Name: progressBar
    * @Description: 在页面执行保存后,使用ajax,计算执行的百分比情况,将结果显示到页面上
    * @Parameters: 无
    * @Return: ajax如果不需要跳转页面,返回null或者NONE*/public String progressBar() throws Exception{//从session中获取操作方法中计算的百分比Double percent = (Double) request.getSession().getAttribute("percent");
        String res = "";//此时说明操作的业务方法仍然继续在执行if(percent!=null){//计算的小数,四舍五入取整int percentInt = (int) Math.rint(percent); 
            res = "<percent>" + percentInt + "</percent>";
        }//此时说明操作的业务方法已经执行完毕,session中的值已经被清空else{//存放百分比res = "<percent>" + 100 + "</percent>";
        }//定义ajax的返回结果是XML的形式PrintWriter out = response.getWriter();
        response.setContentType("text/xml");
        response.setHeader("Cache-Control", "no-cache");//存放结果数据,例如:<response><percent>88</percent></response>out.println("<response>");
        out.println(res);
        out.println("</response>");
        out.close();return null;

    }

save()-Methode

/**  
    * @Name: save
    * @Description: 保存表单数据到数据库
    * @Parameters: 无
    * @Return: String:重定向到system/actingIndex.jsp再查询*/public String save(){//模拟:循环保存150次,方便观察百分比变化for(int i=1;i

 Hinweis: In komplexen Unternehmen kann das Codesegment in Punkte unterteilt werden, der Fortschritt jedes Punktes ist der Prozentsatz und wird dann in der Sitzung gespeichert, und rufen Sie dann den Dienst über Ajax auf, um den Wert von Session abzurufen, geben Sie den Fortschritt zurück und zeigen Sie ihn an.


Wirkung

 Beim Eingeben von Daten und Klicken auf [Speichern]:


Zusammenfassung

 Der Fortschrittsbalken mit Prozentsatz wird tatsächlich mit Ajax gespeichert. Implementiert durch Öffnen mehrerer Threads:

  • Ein Thread, den gespeicherten Vorgang ausführen:

1. Berechnen Sie den Prozentsatz und fügen Sie ihn in die Sitzung ein

2. Beenden Sie die Sitzung, wenn der Thread endet.

  • Ein weiterer Thread, Holen Sie sich den prozentualen Inhalt der Sitzung:

1. Verwenden Sie Ajax, um die Ergebnisse zurückzugeben und auf der Seite anzuzeigen

Das obige ist der detaillierte Inhalt vonTeilen Sie ein Beispiel-Tutorial zur Verwendung von Ajax zur Implementierung eines prozentualen Fortschrittsbalkens. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools