Dieses Mal zeige ich Ihnen, wie Sie Ajax im Seitenstatus beibehalten und welche Vorsichtsmaßnahmen es gibt, um Ajax im Seitenstatus beizubehalten. Schauen wir uns das hier an.
Der herkömmliche Status wird in der Adressleiste gespeichert, z. B.: www.abc.com/search?s=abc&id=23&page=3Wenn diese Methode verwendet wird, wird der Browser aktualisiert Wenn Sie Anker verwenden, wird der Browser nicht aktualisiert. Insbesondere wenn Sie auf die Seite klicken, um Daten anzufordern, wird der Wert hinter dem „#“ in der Adressleiste geändert. Wir gehen zur vierten Seite wie:abc.com/search#s=abc&id=23&page=4
Dies reicht nicht aus, wenn der Benutzer auf „klickt“. Vorwärts“ und „Zurück“ ändert sich der Seiteninhalt nicht entsprechend. Ich habe einenTimer verwendet, um das Problem basierend auf dem, was andere online gemacht haben, zu lösen.
/** * URL Watcher(require jQuery) * 监测url的变化 * useage: * UrlWatcher.init(50); * UrlWatcher.AddListener(function(url,isFirstLoad){ * FrontEngine.generateFront(); * }); * */ var UrlWatcher = { "init": function (waittime) { this.UrlArray = [window.location.href];//set current url as default this.ListenerArray = []; this.ResetWaitTime(waittime); }, "AddListener": function (listener) {//add a process function this.ListenerArray.push(listener || function () {}); }, "DeleteListener": function () { this.ListenerArray = []; }, "ResetWaitTime": function (time) {//start timer if (this.IntervalHandle) {window.clearInterval(this.IntervalHandle); } this.WaitTime = time || 1000; this.IntervalHandle = window.setInterval(this.ListenerCall.setThis(this), this.WaitTime); }, "ListenerCall": function () { var self = this, url = window.location.href; if (self.UrlArray[self.UrlArray.length - 1] === url) {return; } window.clearInterval(this.IntervalHandle); $.each(this.ListenerArray, function (c, listener) { listener(url, self.UrlArray.length === 0); }); this.UrlArray.push(url); this.ResetWaitTime(this.WaitTime); } };
document.documentMode des IE erkannt werden.
if( ('onhashchange' in window) && ((typeof document.documentMode==='undefined') || document.documentMode==8)) { // 浏览器支持onhashchange事件 indow.onhashchange = hashChangeFire; // TODO,对应新的hash执行的操作函数 } else { // 不支持则用定时器检测的办法 setInterval(function() { var ischanged = isHashChanged(); // TODO,检测hash值或其中某一段是否更改的函数 if(ischanged) { hashChangeFire(); // TODO,对应新的hash执行的操作函数 } }, 150); }
So implementieren Sie die Echtzeitbearbeitung von Tabellen mit PHP+Ajax
So verwenden Sie Ajax Funktion zum dynamischen Laden von Daten
Das obige ist der detaillierte Inhalt vonSo behalten Sie den Ajax-Seitenstatus bei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!