Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Ajax-Implementierung der Datei-Download-Funktion

Detaillierte Erläuterung der Ajax-Implementierung der Datei-Download-Funktion

php中世界最好的语言
php中世界最好的语言Original
2018-04-24 17:09:143724Durchsuche

Dieses Mal werde ich Ihnen eine detaillierte Erklärung der Datei-Download-Funktion geben. Was sind die Vorsichtsmaßnahmen für die Ajax-Implementierung der Datei-Download-Funktion? ist ein praktischer Fall, werfen wir einen Blick darauf.

Die Rückgabetypen der Ajax-Funktion von JQuery sind nur XML, Text, JSON, HTML und andere Typen, und es gibt keinen „Stream“-Typ. Wenn wir also den Ajax-Download implementieren möchten, können wir den entsprechenden Ajax nicht verwenden Funktion zum Herunterladen von Dateien. Sie können jedoch js verwenden, um ein Formular zu generieren, dieses Formular zum Senden von Parametern verwenden und Daten vom Typ „Stream“ zurückgeben. Während des Implementierungsprozesses wurde die Seite nicht aktualisiert.

1. Bei Verwendung von Ajax ist der Rückgabewerttyp von Ajax der Typ JSON, Text, HTML, XML, oder es kann gesagt werden, dass das Senden und Empfangen von Ajax nur eine Zeichenfolge sein kannZeichenfolge und kann nicht gestreamt werden, sodass das Herunterladen von Dateien nicht möglich ist und es bei erzwungener Verwendung zu Antwortkonflikten kommt. Wenn Sie Ajax verwenden müssen, können Sie die generierte dateibezogene URL nur durch Rückgabe des Werts abrufen. Erstellen Sie dann einen Iframe in der Callback-Funktion und legen Sie seinen Quellwert auf die Datei-URL oder eine Verarbeitungs-URL für den Dateigenerierungsstream fest. Auf diese Weise kann die Datei heruntergeladen werden, ohne die Seite zu aktualisieren.

2. Ohne die Verwendung von Ajax kann dies durch dynamisches Bedienen von dom oder Erstellen eines Iframes oder Formulars erreicht werden. Die Seite wird beim Herunterladen der Datei nicht aktualisiert Die Datei kann auch direkt über die Antwort-Stream-Ausgabe heruntergeladen werden. Die Form besteht darin, dass die Stream-Verarbeitungs-URL über die Antwort-Stream-Ausgabe heruntergeladen wird Aktualisierung der Seite. Um den

Fortschrittsbalken während des Downloads zu implementieren, können Sie eine geplante Aufgabe erstellen, in bestimmten Abständen Anfragen an den Hintergrund senden und den Fortschritt des Dateidownloads über öffentliche Objekte wie Sitzungen abrufen.

var title=$("input[name='gjzSelect']").val();
var rqTime = $(".ui-datepicker-time").val();
var ddd= rqTime.split("一");
var startTime=ddd[];
var endTime=ddd[];
var form = $("<form>"); //定义一个form表单
form.attr('style', 'display:none'); //在form表单中添加查询参数
form.attr('target', '');
form.attr('method', 'post');
form.attr('action', "<%=basePath%>jiankong/madeExcel.do");
var input = $('<input>');
input.attr('type', 'hidden');
input.attr('name', 'startTime');
input.attr('value', startTime);
var input = $('<input>');
input.attr('type', 'hidden');
input.attr('name', 'endTime');
input.attr('value', endTime);
var input = $('<input>');
input.attr('type', 'hidden');
input.attr('name', 'title');
input.attr('value', title);
$('body').append(form); //将表单放置在web中
form.append(input); //将查询参数控件提交到表单上
form.append(input);
form.append(input);
form.submit();
<%-- 
$.ajax({
url:'<%=basePath%>jiankong/madeExcel.do',
cache:false,
data:{
'startTime':startTime,
'endTime':endTime,
'title' :title
},
error:function (e){
alert("导出失败!");
},
success:function (data){
alert("导出成功!");
} 
}); 
--%>
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Anpassung der Ajax-Ausführungsreihenfolge in jquery

Detaillierte Erläuterung der Ajax- und $.ajax-Beispiele

So erstellen Sie eine Ajax-Anfrage für die Überwachungsseite mit jQuery

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Ajax-Implementierung der Datei-Download-Funktion. 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