Heim Java javaLernprogramm Ausführliche Erläuterung von Beispielen zum dynamischen Laden und Ausführen von Seiten

Ausführliche Erläuterung von Beispielen zum dynamischen Laden und Ausführen von Seiten

Jul 18, 2017 pm 03:21 PM
extjs javascript

ExtJS 4.1 TabPanel lädt die Seite dynamisch und führt das Skript aus. Es hat mehrere Tage gedauert, bis ich es geschafft habe Im Folgenden erzähle ich Ihnen davon.

Laut dem offiziellen Beispiel kann die Seite dynamisch geladen werden, aber das Skript wird nicht ausgeführt. Daher habe ich das SDK und Google überprüft und festgestellt, dass Skripte auf „true“ gesetzt werden müssen, also habe ich dieses Attribut festgelegt. Der gesamte Code lautet wie folgt

tabPanel.add({
title: 'dynamic page',
closable: true,
loader: { 'test.htm', loadMask: 'loading...', autoLoad: true, scripts: true }
});
Nach dem Login kopieren

Zuerst dachte ich, dass mit dem Skript zum Laden der Seite etwas nicht stimmte, denn nachdem ich viele Informationen überprüft hatte, sagten einige Leute, dass es in der < body>, während andere sagten, es könne nur auf die Seite geschrieben werden und src nicht zum Referenzieren von js-Dateien verwendet werden, aber egal wie ich es versuchte, es funktionierte nicht. Nein, meine Ladeseite ist sehr einfach Wenn die Seite geladen ist, wird ein Popup-Fenster angezeigt.

<script type="text/javascript">
alert("addd");
</script>
后来想,是不是需要在tab被激活的事件手工load,而不是autoLoad,于是再次实验,终于成功了,兴奋!
tabPanel.add({
title: &#39;dynamic page&#39;,
closable: true,
loader: { &#39;test.htm&#39;, loadMask: &#39;loading...&#39;, autoLoad: true, scripts: true }
 listeners: { activate: function(tab){ tab.loader.load(); } }
});
Nach dem Login kopieren

Ursprünglich dachte ich, ich würde hier aufhören und diesen Tab an einem Tag endlich fertigstellen, aber als ich aufgeregt war, entdeckte ich, dass diese Methode funktioniert Das Problem besteht darin, dass jedes Mal, wenn auf eine Registerkarte geklickt wird, ein Aktivierungsereignis ausgelöst wird, um die Hintergrundseite einmal zu lesen. Der gewünschte Effekt besteht darin, dass nach dem einmaligen Laden des Frontends beim Wechseln der Registerkarten nicht erneut auf das Backend zugegriffen wird. Also habe ich das SDK und Google überprüft und versucht zu beurteilen, ob der Tab im Aktivierungsereignis geladen wurde, aber es ist fehlgeschlagen

Am nächsten Tag habe ich die Listener entfernt und wollte dann aus unerklärlichen Gründen den Ladeeffekt von testen die geladene Seite, blockierte absichtlich den Seitenthread und fügte den folgenden Code hinzu:

System.Threading.Thread.Sleep(5000);

Diesmal war es unbeabsichtigt, und ich stellte fest, dass die Seite nach 5 Sekunden geladen wurde, konnte das Skript tatsächlich normal ausführen!

Meine Schritte sind wie folgt: Klicken Sie auf die Schaltfläche „Laden“ und dann auf die dynamisch geladene Registerkarte. Nach 5 Sekunden wird der Inhalt angezeigt und das Skript wird ausgeführt Die Seite wird nicht immer geladen, also überprüfe ich weiterhin die Informationen und versuche es weiter und beginne sogar mit dem Debuggen des Quellcodes von extjs. Hier erfahren Sie, wie Sie das folgende Skript debuggen 🎜>

Ich werde nicht erklären, wie man debuggt. Es gibt viele auf Google. Ja, ich habe einen Tag lang debuggt, aber ohne Erfolg. Dies ist jedoch mein erster enger Kontakt mit extjs-Code

<script type="text/javascript"
src="/Scripts/ext/ext-all.js?1.1.11"></script>改为
<script type="text/javascript"
src="/Scripts/ext/ext-debug.js?1.1.11"></script>
Nach dem Login kopieren
Und ich habe beim Debuggen auch eine seltsame Sache entdeckt, selbst wenn Sleep(5000) hinzugefügt wird wurde immer verwirrter


Am dritten Tag schloss ich mich wie verrückt QQ-Gruppen an, postete in verschiedenen Foren und Websites und googelte weiter, aber ohne Erfolg

Am vierten Tag Ich hatte das Glück, mit Bing autoload:true von Microsoft suchen zu können. scripts:true, der erste Artikel erscheint, es gibt eine solche Einführung, aber es geht um extjs Wie lädt das 4.0-Panel die Seite und führt das Skript aus, also habe ich es anhand seines Codes getestet

Der Code kann erfolgreich ausgeführt werden! Ich war jetzt total begeistert, denn der Tab kann jede Komponente laden, und natürlich kann er auch das Panel laden, also habe ich meinen Code

Ext.onReady(function () {
  var panel = Ext.create(&#39;Ext.Panel&#39;, {
  title: &#39;Anchor
Layout&#39;,  
  renderTo:Ext.getBody(),  
  loader:{ url: "test.htm",autoLoad:true,
scripts:true}//加载1.htm页面
  });
  });
Nach dem Login kopieren
erfolgreich geändert! Ich bin wirklich begeistert. Nach 4 Tagen habe ich endlich ein gutes Ergebnis erzielt. Diese Art von Freude kann nur unser technisches Personal verstehen. Das ist die gelbe Farbe über mir, renderTo:Ext.getBody(), muss tatsächlich gerendert werden, bevor das Skript normal angezeigt werden kann. !

Aber, aber... das ist keine perfekte Lösung. Vorsichtige Freunde werden wissen, dass das Skript die Ladeseite zuerst auf die Hauptseite lädt und nach dem Wechseln der Registerkarten verschwindet. Weil ich damals so aufgeregt war, habe ich es leider nicht bemerkt.
var panel = Ext.create(&#39;Ext.Panel&#39;,{
title: &#39;dynamic page&#39;,
renderTo:Ext.getBody(),
closable: true,
loader: { &#39;test.htm&#39;, loadMask: &#39;loading...&#39;, autoLoad: true,
scripts: true }
});
tabPanel.add(panel);
Nach dem Login kopieren

Ich musste mit dem Tippen auf der Tastatur aufhören und sorgfältig darüber nachdenken. Ich habe die Seite erfolgreich geladen und das Skript dreimal ausgeführt:

1 und als die Registerkarte aktiviert wurde

2. Klicken Sie nach dem Schlafen auf die Tabulatortaste und warten Sie, bis die Seite geladen ist.

3. Render hinzufügenZur Konfiguration

Nach langem Nachdenken habe ich endlich diese drei Erfolge gefunden Alle hatten eines gemeinsam: Die geladene Seite wird angezeigt, das heißt, wenn der Tab zuerst die Seite lädt und dann „gesehen“ wird, wird das Skript nicht ausgeführt.

Um meine zu überprüfen Idee, ich habe sofort mit dem Testen begonnen und den Ruhezustand auf 100 Millisekunden eingestellt, auf die Schaltfläche „Laden“ geklickt und dann nach 1 Sekunde auf die geladene Registerkarte geschaut. Tatsächlich wird das Skript nicht ausgeführt! ! !

Endlich den Grund gefunden:

Tab muss zuerst „angezeigt“ und dann geladen werden

, dann ist das einfach, überprüfen Sie sofort das SDK, es ist nicht schwer, die Show-Methode zu finden, also Ändern Sie den Code

OK, das Skript wird normal ausgeführt und mein Problem ist „perfekt“ gelöst

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Beispielen zum dynamischen Laden und Ausführen von Seiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript Dec 17, 2023 pm 02:54 PM

So implementieren Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem. Einführung: Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Spracherkennungstechnologie zu einem wichtigen Bestandteil des Bereichs der künstlichen Intelligenz geworden. Das auf WebSocket und JavaScript basierende Online-Spracherkennungssystem zeichnet sich durch geringe Latenz, Echtzeit und plattformübergreifende Eigenschaften aus und hat sich zu einer weit verbreiteten Lösung entwickelt. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem implementieren.

WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen Dec 17, 2023 pm 05:30 PM

WebSocket und JavaScript: Schlüsseltechnologien zur Realisierung von Echtzeit-Überwachungssystemen Einführung: Mit der rasanten Entwicklung der Internet-Technologie wurden Echtzeit-Überwachungssysteme in verschiedenen Bereichen weit verbreitet eingesetzt. Eine der Schlüsseltechnologien zur Erzielung einer Echtzeitüberwachung ist die Kombination von WebSocket und JavaScript. In diesem Artikel wird die Anwendung von WebSocket und JavaScript in Echtzeitüberwachungssystemen vorgestellt, Codebeispiele gegeben und deren Implementierungsprinzipien ausführlich erläutert. 1. WebSocket-Technologie

Verwendung von JavaScript und WebSocket zur Implementierung eines Echtzeit-Online-Bestellsystems Verwendung von JavaScript und WebSocket zur Implementierung eines Echtzeit-Online-Bestellsystems Dec 17, 2023 pm 12:09 PM

Einführung in die Verwendung von JavaScript und WebSocket zur Implementierung eines Online-Bestellsystems in Echtzeit: Mit der Popularität des Internets und dem Fortschritt der Technologie haben immer mehr Restaurants damit begonnen, Online-Bestelldienste anzubieten. Um ein Echtzeit-Online-Bestellsystem zu implementieren, können wir JavaScript und WebSocket-Technologie verwenden. WebSocket ist ein Vollduplex-Kommunikationsprotokoll, das auf dem TCP-Protokoll basiert und eine bidirektionale Kommunikation zwischen Client und Server in Echtzeit realisieren kann. Im Echtzeit-Online-Bestellsystem, wenn der Benutzer Gerichte auswählt und eine Bestellung aufgibt

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript Dec 17, 2023 am 09:39 AM

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript. Im heutigen digitalen Zeitalter müssen immer mehr Unternehmen und Dienste Online-Reservierungsfunktionen bereitstellen. Es ist von entscheidender Bedeutung, ein effizientes Online-Reservierungssystem in Echtzeit zu implementieren. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Reservierungssystem implementieren, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist WebSocket? WebSocket ist eine Vollduplex-Methode für eine einzelne TCP-Verbindung.

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Dec 17, 2023 pm 05:13 PM

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Einführung: Heutzutage ist die Genauigkeit von Wettervorhersagen für das tägliche Leben und die Entscheidungsfindung von großer Bedeutung. Mit der Weiterentwicklung der Technologie können wir genauere und zuverlässigere Wettervorhersagen liefern, indem wir Wetterdaten in Echtzeit erhalten. In diesem Artikel erfahren Sie, wie Sie mit JavaScript und WebSocket-Technologie ein effizientes Echtzeit-Wettervorhersagesystem aufbauen. In diesem Artikel wird der Implementierungsprozess anhand spezifischer Codebeispiele demonstriert. Wir

So verwenden Sie insertBefore in Javascript So verwenden Sie insertBefore in Javascript Nov 24, 2023 am 11:56 AM

Verwendung: In JavaScript wird die Methode insertBefore() verwendet, um einen neuen Knoten in den DOM-Baum einzufügen. Diese Methode erfordert zwei Parameter: den neuen Knoten, der eingefügt werden soll, und den Referenzknoten (d. h. den Knoten, an dem der neue Knoten eingefügt wird).

Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Jan 05, 2024 pm 06:08 PM

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

So erhalten Sie auf einfache Weise HTTP-Statuscode in JavaScript So erhalten Sie auf einfache Weise HTTP-Statuscode in JavaScript Jan 05, 2024 pm 01:37 PM

Einführung in die Methode zum Abrufen des HTTP-Statuscodes in JavaScript: Bei der Front-End-Entwicklung müssen wir uns häufig mit der Interaktion mit der Back-End-Schnittstelle befassen, und der HTTP-Statuscode ist ein sehr wichtiger Teil davon. Das Verstehen und Abrufen von HTTP-Statuscodes hilft uns, die von der Schnittstelle zurückgegebenen Daten besser zu verarbeiten. In diesem Artikel wird erläutert, wie Sie mithilfe von JavaScript HTTP-Statuscodes erhalten, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist ein HTTP-Statuscode? HTTP-Statuscode bedeutet, dass der Dienst den Dienst anfordert, wenn er eine Anfrage an den Server initiiert

See all articles