日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

js路由在php上面使用,director.js实现前端路由使用实例

發布時間:2025/3/17 php 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js路由在php上面使用,director.js实现前端路由使用实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

做過后端開發,尤其是使用過類似Django或者express對服務器端的路由功能應該都比較熟悉,國外流行的博客系統wordpress也是非常經典的路由實現案例。那么,究竟什么的路由呢,下面通過wordpress來簡單講一下。

理解wordpress重寫規則的的都是知道,實際上任何一條url的訪問都是基于wordpress安裝目錄下的index.php(除了服務器上已經存在文件的訪問),當wordpress的固定鏈接是模式設置是會很明顯,例如文章的url是index.php?p=id,分類頁面的url是index.php?cat=id。

在這里,index.php就充當了路由器的功能,請看下圖:

也就是說,不管你訪問的是什么地址,所有的請求最終都會重定向到index.php,程序會根據訪問url的特征,確定你需要的是哪個類型的頁面,然后向數據庫作出查詢,最終把html內容返回給瀏覽器。

上面說的是web后端路由,那么前端的路由是什么呢?實際上現在前端路由技術應用非常廣泛,有很多開源的js類庫都支持前端路由,如angularJS,ember.js, director.js等等。前端路由和后端路由原理一樣,是讓所有的交互和展現在一個頁面運行以達到減少服務器請求,提高客戶體驗的目的,越來越多的網站特別是web應用都用到了前端路由。

director.js是最純粹的路由注冊/解析器,它在不刷新頁面的情況下,利用“#”符號組織不同的URL路徑,并根據不同的URL路徑來匹配不同的回調方法。director.js不僅可以應用在客戶端,在使用node.js的后臺,它也能夠實現前面說的后端路由功能。來看下面關于前端路由實現的例子

需要設計一下類似web QQ上的web桌面應用,桌面上有很多小圖標,每一個小圖標是一個功能應用,類似電腦桌面。桌面上有一個百度新聞的按鈕,點擊它在當前頁面彈出一個窗口,能夠查看百度新聞,另外一個圖標,點擊可以查看當前時間,下面是一個簡單的示例:

* {margin:0;padding:0}

body {width:100%;height:100%;background:#3d72b8}

#baidunews {width:40px;height:40px;background:url("./du.png") no-repeat;display:block;margin:50px;}

#tweibo {width:40px;height:40px;background:url("./du.png") no-repeat;display:block;margin:50px;}

//定義路由

var route = {

"/time":nowtime,

"/baidunews":[showframe,getbaidunew]

}

//初始化路由

var router = Router(route)

router.init();

//定義顯示當前時間的回調函數

function nowtime(){

var now=new Date();

var y=now.getFullYear();

var m=now.getMonth()+1;

var d=now.getDate();

var h=now.getHours();

var mi=now.getMinutes();

var s=now.getSeconds();

alert("現在時間\n"+y+"年"+m+"月"+d+"日 "+h+"時"+mi+"分"+s+"秒");

}

//定義顯示瀏覽器框架的函數

function showframe(){

var f=document.createElement("div");

f.style.width="985px";

f.style.height="500px";

f.style.position="absolute";

f.style.top="50px";

f.style.left="200px";

f.style.background="white";

f.style.border="2px solid #ccc";

//關閉按鈕

var close=document.createElement("span");

close.style.position="absolute";

close.style.right="5px";

close.style.cursor="pointer";

close.style.marginRight="5px";

close.οnclick=function(){

document.body.removeChild(f);

}

close.innerHTML="X";

//加載站外的iframe

var win=document.createElement("iframe");

win.id="myiframe";

win.frameBorder=0;

win.style.width="100%";

win.style.height="100%";

f.appendChild(close);

f.appendChild(win);

document.body.appendChild(f);

}

//定義加載百度新聞網頁的函數

function getbaidunew(){

document.getElementById("myiframe").src="http://news.baidu.com/";

}

從上面的代碼可以看出,director.js利用頁面中的“#”進行路由轉發。上面的例子只是一個非常簡單的實例,director.js能夠實現更加復雜、龐大的功能,它可以通過ajax和服務端數據交互,可以和其它js類庫并存,是一個web應用開發利器。

director.js對SEO有影響嗎?

客戶端的director.js對SEO有影響,因為數據所有數據只在一個頁面,有些數據的存儲方式不利于搜索引擎蜘蛛的抓取,如果你需要對SEO友好,說明你需要構造的是一個”web頁面”而不是“web應用”,不推薦使用director.js。

總結

以上是生活随笔為你收集整理的js路由在php上面使用,director.js实现前端路由使用实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。