Home > Web Front-end > JS Tutorial > body text

Director.js implements front-end routing usage examples

高洛峰
Release: 2017-02-03 14:03:23
Original
1503 people have browsed it

Having done back-end development, especially if you have used Django or express, you should be familiar with the server-side routing function. WordPress, a popular foreign blog system, is also a very classic routing implementation case. So, what is the routing? Let’s briefly talk about it through wordpress.

Everyone who understands WordPress rewriting rules knows that in fact, access to any URL is based on index.php in the WordPress installation directory (except for access to files that already exist on the server). When WordPress is fixed It will be obvious if the link is a mode setting. For example, the url of the article is index.php?p=id, and the url of the category page is index.php?cat=id.

Here, index.php acts as a router, please see the picture below:

Director.js implements front-end routing usage examples

In other words, no matter what address you visit , all requests will eventually be redirected to index.php. The program will determine which type of page you need based on the characteristics of the accessed URL, then make a query to the database, and finally return the HTML content to the browser.

The above is about web back-end routing, so what is the front-end routing? In fact, front-end routing technology is now widely used. There are many open source js libraries that support front-end routing, such as angularJS, ember.js, director.js, etc. The principle of front-end routing is the same as that of back-end routing, which is to run all interactions and displays on one page to reduce server requests and improve customer experience. More and more websites, especially web applications, use front-end routing.

director.js is the purest route registration/parser. It uses the "#" symbol to organize different URL paths without refreshing the page, and matches different callbacks according to different URL paths. method. Director.js can not only be applied on the client, but also in the background using node.js, it can also implement the back-end routing function mentioned earlier. Let’s look at the following example of front-end routing implementation
You need to design a web desktop application similar to web QQ. There are many small icons on the desktop, and each small icon is a functional application, similar to a computer desktop. There is a Baidu News button on the desktop. Click it to pop up a window on the current page to view Baidu News. Click on another icon to view the current time. Here is a simple example:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<script src="https://rawgit.com/flatiron/director/master/build/director.min.js"></script>
<style>
 * {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;}
</style>
</head>
<body>
 <a href="#/baidunews" id="baidunews" title="百度新闻"></a>
 <a href="#/time" id="tweibo" title="当前时间"></a>
<script>
 //定义路由
 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.onclick=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/";
 }
</script>
</body>
</html>
Copy after login

From the above It can be seen from the code that director.js uses the "#" in the page for routing and forwarding. The above example is just a very simple one. Director.js can implement more complex and huge functions. It can interact with server-side data through ajax and can coexist with other js libraries. It is a powerful tool for web application development.

Does director.js have an impact on SEO?

The client's director.js has an impact on SEO, because all the data is only on one page, and the storage method of some data is not conducive to the crawling of search engine spiders. If you need to be SEO-friendly, you need to structure It is a "web page" rather than a "web application", and the use of director.js is not recommended.

For more director.js implementation of front-end routing usage examples, please pay attention to the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template