JS实现简单路由器功能的方法


Posted in Javascript onMay 27, 2015

本文实例讲述了JS实现简单路由器功能的方法。分享给大家供大家参考。具体实现方法如下:

var wawa = {};
wawa.Router = function(){
  function Router(){
  }
  Router.prototype.setup = function(routemap, defaultFunc){
    var that = this, rule, func;
    this.routemap = [];
    this.defaultFunc = defaultFunc;
    for (var rule in routemap) {
      if (!routemap.hasOwnProperty(rule)) continue;
      that.routemap.push({
        rule: new RegExp(rule, 'i'),
        func: routemap[rule]
      });       
    }
  };
  Router.prototype.start = function(){
    console.log(window.location.hash);
    var hash = location.hash, route, matchResult;
    for (var routeIndex in this.routemap){
      route = this.routemap[routeIndex];
      matchResult = hash.match(route.rule);
      if (matchResult){
        route.func.apply(window, matchResult.slice(1));
        return; 
      }
    }
    this.defaultFunc();
  };
  return Router;
}();
var router = new wawa.Router();
router.setup({
  '#/list/(.*)/(.*)': function(cate, id){
      console.log('list', cate, id);
    },
  '#/show/(.*)': function(id){
      console.log('show', id); 
    }
}, function(){
  console.log('default router');
});
router.start();

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
在VS2008中使用jQuery智能感应的方法
Dec 30 Javascript
Dom 结点创建 基础知识
Oct 01 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
Jan 24 Javascript
JavaScript作用域与作用域链深入解析
Dec 06 Javascript
js判断客户端是iOS还是Android等移动终端的方法
Dec 11 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
Feb 08 Javascript
JavaScript中eval函数的问题
Jan 31 Javascript
第九章之路径分页标签与徽章组件
Apr 25 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
Jan 23 Javascript
在vue.js中抽出公共代码的方法示例
Jun 08 Javascript
基于jquery实现彩色投票进度条代码解析
Aug 26 jQuery
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
Jan 28 Javascript
JavaScript实现将UPC转换成ISBN的方法
May 26 #Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
May 26 #Javascript
js实现文本框选中的方法
May 26 #Javascript
javascript委托(Delegate)blur和focus用法实例分析
May 26 #Javascript
javascript删除元素节点removeChild()用法实例
May 26 #Javascript
JavaScript事件委托实例分析
May 26 #Javascript
JQuery选择器、过滤器大整理
May 26 #Javascript
You might like
PHP 文件类型判断代码
2009/03/13 PHP
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
PHP经典面试题之设计模式(经常遇到)
2015/10/15 PHP
php session实现多级目录存放实现代码
2016/02/03 PHP
PHP处理CSV表格文件的常用操作方法总结
2016/07/01 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
2016/09/19 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
2016/10/31 PHP
php compact 通过变量创建数组
2016/11/15 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
前端开发必须知道的JS之原型和继承
2010/07/06 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
JavaScript调用客户端Java程序的方法
2015/07/27 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
2016/04/05 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
vue实现简单的日历效果
2020/09/24 Javascript
vue element upload实现图片本地预览
2019/08/20 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
2019/09/09 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
Vue+Openlayers自定义轨迹动画
2020/09/24 Javascript
Python中subprocess的简单使用示例
2015/07/28 Python
12步教你理解Python装饰器
2016/02/25 Python
Python给你的头像加上圣诞帽
2018/01/04 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
Python内置函数locals和globals对比
2020/04/28 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
html5使用canvas实现弹幕功能示例
2017/09/11 HTML / CSS
Lookfantastic日本官网:英国知名护肤、化妆品和头发护理购物网站
2018/04/21 全球购物
一百多行代码实现react拖拽hooks
2021/03/23 Javascript
行政经理的岗位职责
2013/11/23 职场文书
党校培训思想汇报
2013/12/30 职场文书
《小蝌蚪找妈妈》教学反思
2014/02/21 职场文书
实习护士自荐信
2014/06/21 职场文书
大班上学期个人总结
2015/02/13 职场文书