


Verwenden Sie das in Yii integrierte pjax (pushstate+ajax), um die Seite ohne Aktualisierung zu laden
In diesem Artikel wird Yii vorgestellt, um Pjax (Pushstate + Ajax) zu integrieren, um das Laden von Seiten ohne Aktualisierung zu erreichen.
Was ist Pjax?
Pjax = history.pushState + Ajax = history.pushState + Async JS + XML(xhr?)
Der Stücklistenobjektverlauf wurde verbessert, hauptsächlich für Vorgänge im Verlaufsstapel. In der Vergangenheit wurden nur Ersetzen, Loslassen und dergleichen ausgeführt . Jetzt gibt es pushState, replaceState und andere Methoden, die nur den Inhalt im Verlaufsstapel ändern und keine Nebenwirkungen haben (die Seite wird nicht aktualisiert)
PJAX-Effekt
Der dynamisch geladene Inhalt von Ajax kann über die URL verfolgt werden. Diese Technik ist besonders vorteilhaft in Ansichten mit zweistufigen Ansichtslayouts. Das Laden der Seite ohne Aktualisierung bedeutet, dass die Reaktionsgeschwindigkeit und das Benutzererlebnis erheblich verbessert wurden. Wenn viele statische Skripte und gemeinsame Module vorhanden sind, werden die Kosten für die Wiederverwendung am meisten eingespart. Anwendungsbeispiele können sich auf das aktuelle Google+, Facebook und die neue Version von Weibo beziehen, die ebenfalls auf Basis von HTML5 pushState implementiert sind. Die Leistung von Google Plus ist am offensichtlichsten. Klicken Sie auf die Adresse der Navigationsleiste, der Pfeil bewegt sich mit dem Ziel und die geladene Seite wird gleichzeitig eingeblendet.
Dirty URL und Clean URL
Vor dem Aufkommen von pjax musste der Browser dies unterstützen, um ein Laden ohne Seitenaktualisierung zu erreichen und über die URL nachverfolgbar zu sein window.location.hash-Eigenschaft. Der zu ladende Inhalt wird durch Beurteilung der nach dem URL-Anker aufgezeichneten Adresse bestimmt. Die spezifische Konstruktionsmethode besteht darin, eine Hash-Änderungsüberwachungsfunktion zu schreiben und den zu ladenden Inhalt zu beurteilen, wenn die Hash-Änderung ausgelöst wird. Der Nachteil besteht darin, dass Browser niedrigerer Versionen wie ie6 kein Hash unterstützen und ein zusätzlicher Iframe erstellt werden muss, um historische URLs aufzuzeichnen und eine Vorwärts- und Rückwärtsbewegung zu erreichen. Das größte Problem besteht darin, dass der nach # generierte Inhalt nicht von Suchmaschinen indiziert wird und die Verwendung von # zur Weiterleitung der Adresse an eine Anforderungsadresse von ?escape_fragment=url befürwortet , Jeder auf Renren, Sina Weibo und dem geschlossenen Douban hat gesehen, dass dieser Hash-Bang verwendet wurde oder wird. passieren#! Um eine URL ohne Aktualisierung zu laden, wird sie als schmutzige URL bezeichnet, da die allgemeine Methode nicht einfach von Suchmaschinen (z. B. inländischem Baidu) aufgenommen werden kann. Relativ gesehen kann pjax eine saubere URL verwenden, um den gleichen Effekt zu erzielen gut kompatibel mit verschiedenen Dieser Browser ist derzeit die am besten geeignete Methode
Verwendung von PHP+jQuery zur Implementierung von PJAX
Es ist nicht erforderlich, ein darauf basierendes Javascript-Plug-in zu schreiben pushState von Grund auf neu, da jQuery bereits ein Projekt hat. Es ist Open Source und einfach zu implementieren. Derzeit habe ich es in das in Entwicklung befindliche Projekt eingeführt und es ist sehr kompatibel mit dem Original. Ganz zu schweigen von der Werbung für die neue Version von Weibo. Ich hoffe, dass das Publikum sehen kann, dass ich danach aussehe Wenn Sie es verwenden, sehen Sie es auch nach der Verwendung.
Vorbereitung vor dem Start:
1 auf jQ (Open-Source-Projekt auf Github) https://github.com/defunkt/jquery-pjax
3. PHP-Projektcode (zur einfacheren Weitergabe verwendet dieser Artikel das yii-Framework zur Demonstration und das tatsächliche Entwicklung ist ähnlich)
1. Front-End-ImplementierungEs ist wirklich einfach zu verwenden und das jquery-pjax-Plug-in ist definitiv gut verpackt nach Ihren Wünschen angepasst werden (z. B. Kopieren des Effekts von g plus), der die oben genannten Schritte integriert:
<?php Yii::app()->clientScript->registerCoreScript('jquery'); Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . '/js/jquery-pjax/jquery.pjax.js');//具体以你存放pjax的实际位置为准 ?> <p id="nav"> <a href="<?php echo Yii::app()->createUrl('article/index');?>">article</a> </p> <p id="main">替换的内容</p> <script type="text/javascript"> $(document).ready(function(){ $("#main").pjax("a"); }); </script>
Der Das ultimative Ziel besteht darin, den Text in p durch die ID von main mit dem entsprechenden Adressinhalt und der entsprechenden URL zu ersetzen. Das von Ajax zurückgegebene Ergebnis wird automatisch aktualisiert, wenn auf das Tag a geklickt wird, und die Seite wird nicht neu geladen. Beginnen wir mit der Implementierung der vom Backend zu verarbeitenden Inhalte
2. Implementierung der PHP-SeiteDie Aufgaben, die auf der PHP-Seite verarbeitet werden müssen, sind hauptsächlich 2: 1. Layout-Ansichtslayout implementieren 2 . Bestimmen Sie die Anforderung von pjax
Implementierung im Yii-Framework:
Verarbeiten Sie die Aktion wie folgt im Controller (nehmen Sie den Index von Artikel als Beispiel) :
public function actionIndex() { $this->layout = '//layouts/column1'; $dataProvider = new CActiveDataProvider('Article', array( 'criteria' => array('order' => 'create_time DESC') )); if (array_key_exists('HTTP_X_PJAX', $_SERVER) && $_SERVER['HTTP_X_PJAX']) { $this->renderPartial('index', array( 'dataProvider' => $dataProvider, )); } else { $this->render('index', array( 'dataProvider' => $dataProvider, )); } }
Wirkungsdemonstrationsbild:
Nach dem Klicken auf den Artikellink oder den Artikellink erscheint Folgendes Es erscheint die Effektseite:
----------------------------- -----------
1. Der zurückgegebene Vorlageninhalt darf kein einfacher Text sein und muss Wird mit HTML-Tags umschlossen
2. Informationen zur Verwendung des Plug-ins finden Sie in der Projektbeschreibung auf Github. Die Verwendung kann nach dem Update abweichen
3. Für niedrigere Versionen Bei Browsern, die Pushstate nicht unterstützen, ermittelt und verwendet das Pjax-Plugin automatisch den herkömmlichen Seitenlademodus
4. Wenn die Pjax-Anforderungszeit einer Seite die festgelegte Zeit überschreitet, wird sie mithilfe der Aktualisierung geladen. und die relevanten Parameter im Plug-in müssen angepasst werden
Das oben Gesagte habe ich für alle zusammengestellt. Ich hoffe, dass es in Zukunft für alle hilfreich sein wird.
Verwandte Artikel:
Jquery und PHP kombiniert, um AJAX Long Polling zu implementierenJS Ajax-Fortschrittsbarcode beim Laden
Vorläufiges Verständnis von JavaScript, Ajax, jQuery und Vergleich der Beziehung zwischen den dreien
Das obige ist der detaillierte Inhalt vonVerwenden Sie das in Yii integrierte pjax (pushstate+ajax), um die Seite ohne Aktualisierung zu laden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Die Kraft des JavaScript -Frameworks liegt in der Vereinfachung der Entwicklung, der Verbesserung der Benutzererfahrung und der Anwendungsleistung. Betrachten Sie bei der Auswahl eines Frameworks: 1. Projektgröße und Komplexität, 2. Teamerfahrung, 3. Ökosystem und Community -Unterstützung.

Einführung Ich weiß, dass Sie es vielleicht seltsam finden. Was genau muss JavaScript, C und Browser tun? Sie scheinen nicht miteinander verbunden zu sein, aber tatsächlich spielen sie eine sehr wichtige Rolle in der modernen Webentwicklung. Heute werden wir die enge Verbindung zwischen diesen drei diskutieren. In diesem Artikel erfahren Sie, wie JavaScript im Browser ausgeführt wird, die Rolle von C in der Browser -Engine und wie sie zusammenarbeiten, um das Rendern und die Interaktion von Webseiten voranzutreiben. Wir alle kennen die Beziehung zwischen JavaScript und Browser. JavaScript ist die Kernsprache der Front-End-Entwicklung. Es läuft direkt im Browser und macht Webseiten lebhaft und interessant. Haben Sie sich jemals gefragt, warum Javascr

Node.js zeichnet sich bei effizienten E/A aus, vor allem bei Streams. Streams verarbeiten Daten inkrementell und vermeiden Speicherüberladung-ideal für große Dateien, Netzwerkaufgaben und Echtzeitanwendungen. Die Kombination von Streams mit der TypeScript -Sicherheit erzeugt eine POWE

Die Unterschiede in der Leistung und der Effizienz zwischen Python und JavaScript spiegeln sich hauptsächlich in: 1 wider: 1) Als interpretierter Sprache läuft Python langsam, weist jedoch eine hohe Entwicklungseffizienz auf und ist für eine schnelle Prototypentwicklung geeignet. 2) JavaScript ist auf einen einzelnen Thread im Browser beschränkt, aber Multi-Threading- und Asynchronen-E/A können verwendet werden, um die Leistung in Node.js zu verbessern, und beide haben Vorteile in tatsächlichen Projekten.

JavaScript stammt aus dem Jahr 1995 und wurde von Brandon Ike erstellt und realisierte die Sprache in C. 1.C-Sprache bietet Programmierfunktionen auf hoher Leistung und Systemebene für JavaScript. 2. Die Speicherverwaltung und die Leistungsoptimierung von JavaScript basieren auf C -Sprache. 3. Die plattformübergreifende Funktion der C-Sprache hilft JavaScript, auf verschiedenen Betriebssystemen effizient zu laufen.

JavaScript wird in Browsern und Node.js -Umgebungen ausgeführt und stützt sich auf die JavaScript -Engine, um Code zu analysieren und auszuführen. 1) abstrakter Syntaxbaum (AST) in der Parsenstufe erzeugen; 2) AST in die Kompilierungsphase in Bytecode oder Maschinencode umwandeln; 3) Führen Sie den kompilierten Code in der Ausführungsstufe aus.

Zu den zukünftigen Trends von Python und JavaScript gehören: 1. Python wird seine Position in den Bereichen wissenschaftlicher Computer und KI konsolidieren. JavaScript wird die Entwicklung der Web-Technologie fördern. Beide werden die Anwendungsszenarien in ihren jeweiligen Bereichen weiter erweitern und mehr Durchbrüche in der Leistung erzielen.

Sowohl Python als auch JavaScripts Entscheidungen in Entwicklungsumgebungen sind wichtig. 1) Die Entwicklungsumgebung von Python umfasst Pycharm, Jupyternotebook und Anaconda, die für Datenwissenschaft und schnelles Prototyping geeignet sind. 2) Die Entwicklungsumgebung von JavaScript umfasst Node.JS, VSCODE und WebPack, die für die Entwicklung von Front-End- und Back-End-Entwicklung geeignet sind. Durch die Auswahl der richtigen Tools nach den Projektbedürfnissen kann die Entwicklung der Entwicklung und die Erfolgsquote der Projekte verbessert werden.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

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

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Dreamweaver CS6
Visuelle Webentwicklungstools

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.
