Home  >  Article  >  Web Front-end  >  Director.js implements front-end routing usage examples_javascript skills

Director.js implements front-end routing usage examples_javascript skills

WBOY
WBOYOriginal
2016-05-16 16:16:111762browse

Having done back-end development, especially if you have used Django or Express, you should be familiar with server-side routing functions. 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’ fixed link is a pattern The setting will be obvious. 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:

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, and 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 callback methods according to different URL paths. Director.js can not only be applied on the client, but also can implement the back-end routing function mentioned above in the background using node.js. Take a 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. 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 lang="en">
<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>

As can be seen from the above code, 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 any impact on SEO?

Director.js on the client side has an impact on SEO, because all data is only on one page, and the storage method of some data is not conducive to crawling by search engine spiders. If you need to be SEO-friendly, it means that you need to construct a "web page" instead of "web application", director.js is deprecated.

Reference: director.js

Statement:
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