


Director.js implements front-end routing usage examples_javascript skills
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

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Frequently Asked Questions and Solutions for Front-end Thermal Paper Ticket Printing In Front-end Development, Ticket Printing is a common requirement. However, many developers are implementing...

JavaScript is the cornerstone of modern web development, and its main functions include event-driven programming, dynamic content generation and asynchronous programming. 1) Event-driven programming allows web pages to change dynamically according to user operations. 2) Dynamic content generation allows page content to be adjusted according to conditions. 3) Asynchronous programming ensures that the user interface is not blocked. JavaScript is widely used in web interaction, single-page application and server-side development, greatly improving the flexibility of user experience and cross-platform development.

There is no absolute salary for Python and JavaScript developers, depending on skills and industry needs. 1. Python may be paid more in data science and machine learning. 2. JavaScript has great demand in front-end and full-stack development, and its salary is also considerable. 3. Influencing factors include experience, geographical location, company size and specific skills.

Learning JavaScript is not difficult, but it is challenging. 1) Understand basic concepts such as variables, data types, functions, etc. 2) Master asynchronous programming and implement it through event loops. 3) Use DOM operations and Promise to handle asynchronous requests. 4) Avoid common mistakes and use debugging techniques. 5) Optimize performance and follow best practices.

Discussion on the realization of parallax scrolling and element animation effects in this article will explore how to achieve similar to Shiseido official website (https://www.shiseido.co.jp/sb/wonderland/)...

How to merge array elements with the same ID into one object in JavaScript? When processing data, we often encounter the need to have the same ID...

The latest trends in JavaScript include the rise of TypeScript, the popularity of modern frameworks and libraries, and the application of WebAssembly. Future prospects cover more powerful type systems, the development of server-side JavaScript, the expansion of artificial intelligence and machine learning, and the potential of IoT and edge computing.

In-depth discussion of the root causes of the difference in console.log output. This article will analyze the differences in the output results of console.log function in a piece of code and explain the reasons behind it. �...
