partial.js client-side routing(客户端路由-基于HTML5 SPA特性的历史API)

partial.js client-side routing

https://github.com/petersirka/partial.js-clientside

Framework supports the HTML 5 History API, for older browsers (IE8+) URL hashtag is automatically enabled. This plugin is a little big cannon for the web development. Works best with jQuery.

  • easy to use
  • minified only 9.5 kB (without GZIP compression)
  • great functionality
  • great use
  • works in IE 8+
  • no dependencies
  • DEMO EXAMPLE

小巧 易用 功能强大, 兼容性好, 对于老的浏览器, 即不支持HTML5 SPA 历史API的浏览器, 自动降级为 hash方式的路由。

查看例子页面:

http://source.858project.com/contact/

Simple example

// ===========================
// DEFINE ROUTING
// ===========================

// framework === global variable

framework.route(‘/homepage/‘, view_homepage, [‘contact‘]);
framework.route(‘/services/‘, view_services, [‘contact‘]);
framework.route(‘/contact/‘, view_contact, [‘empty‘]);
framework.route(‘/products/{category}/‘, view_products, [‘latest‘]);

// ===========================
// DEFINE PARTIAL CONTENT
// ===========================

framework.partial(‘contact‘, function() {
    $(‘#panel‘).html(‘PANEL CONTACT‘);
});

framework.partial(‘empty‘, function() {
    $(‘#panel‘).html(‘PANEL EMPTY‘);
});

framework.partial(‘latest‘, function() {
    $(‘#panel‘).html(‘PANEL LATEST‘);
});

// ===========================
// DEFINE VIEWS
// ===========================

function view_homepage() {
    $(‘#content‘).html(‘HOMEPAGE‘);
}

function view_services() {
    $(‘#content‘).html(‘SERVICES‘);
}

function view_contact() {
    $(‘#content‘).html(‘CONTACT‘);
}

function view_products(category) {
	$(‘#content‘).html(‘PRODUCTS –> ‘ + category);
}

// ===========================
// DEFINE EVENTS
// ===========================

framework.on(‘ready‘, function() {
    $(‘.menu‘).on(‘click‘, ‘a‘, function(e) {
        e.preventDefault();
        e.stopPropagation();
        framework.redirect($(this).attr(‘href‘));
    });
    framework.redirect(‘/homepage/‘);
});

framework.on(‘location‘, function(url) {
     var menu = $(‘.menu‘);
     menu.find(‘.selected‘).removeClass(‘selected‘);
     menu.find(‘a[href="‘ + url + ‘"]‘).parent().addClass(‘selected‘);
});
时间: 2024-12-10 23:08:09

partial.js client-side routing(客户端路由-基于HTML5 SPA特性的历史API)的相关文章

基于HTML5的PACS--HTML5图像处理(7)实现客户端JS调整窗宽窗位

仅提供参考和学习,代码仅为了指明个思路,转载请注明出处. 要查看此系统更多的图像处理功能请参考: 区域医疗移动医疗影像解决方案--基于HTML5的PACS--HTML5图像处理 在此之前,此系统是结合DICOM的WADO标准,在浏览器里通过javascript操作返回的JPG图片.这种服务器端解析,客户端展现的方式,对实现图像的移动.缩放.旋转.测量等图像操作能够实现实时的交互.但这种方式存在着几个弊端: 1.获取图像上的CT值(钙化值)信息的时候,要频繁的和服务器进行交互. 2.调整图像的窗宽

RabbitMQ学习(四).NET Client之Routing

4 Routing Receiving messages selectively Python | Java | Ruby | PHP| C# 转载请注明出处:jiq?钦's technical Blog Routing(路由) (using the .NET client) 上一节教程我们已经构建好了一个简单的日志系统,能够广播日志消息到多个receiver. 这一节我们将给这个日志系统加一个功能,即我们只订阅这些消息中的一个子集,而不是全部. 例如,前面我们是将订阅到的所有日志消息要么存储到

LVS Direct Routing 直接路由

1. Direct Routing 直接路由 director分配请求到不同的real server, real server处理请求后直接回应给用户,这样director负载均衡器仅处理客户机与服务器一半的连接, 避免了新的瓶颈,同样增加了系统的可伸缩性.Direct Routing 由于采用物理层(修改MAC地址)技术,因此所有服务都必须在一个物理网段. (2). IP Tunneling(IP隧道) director(分发器)分配请求到不同的real server, real server

MVC - Routing - 网址路由

1. Routing  : 路由 主要是比对通过浏览器传来的http要求与响应适当的网址给浏览器. ? 1 @Html.ActionLink("关于","About","Home") 这段代码生成的HTML超连接: ? 1 <a href="/Home/About">关于</a> 2. 默认情况下 网址路由规则定义在 App_Start\RouteConfig.cs文档中. ? 1 2 3 4 5 6

RabbitMQ --- Routing(路由)

目录 RabbitMQ --- Hello Mr.Tua RabbitMQ --- Work Queues(工作队列) RabbitMQ --- Publish/Subscribe(发布/订阅) 前言 在上一章中介绍了 Publish/Subscribe(发布/订阅),它是把每个消息发送给多个 Consumer,也就是说每个 Consumer 都是接收所有的消息,辣么问题来了,如果 Consumer 只接收它想要的某一部分消息,那该怎么办呢?可以通过 Routing(路由)的机制来实现. Dir

基于Html5的智能家居手机客户端设计(一)——找到openhab的rest

今天开始我的毕业设计,基于HTML5的智能家居手机客户端设计.挑剔了好久,终于找到我可以使用国外开源项目智能家居核心,通过restful(我也不是很懂,毕竟我只是电子信息学院爱好网络). REST描述了一个架构样式的网络系统,比如 web 应用程序.在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量

支持并发的http客户端(基于tcp连接池以及netty)

闲来无事,将以前自己写的一个库放出来吧.. 有的时候会有这样子的需求: (1)服务器A通过HTTP协议来访问服务器B (2)服务器A可能会并发的像B发送很多HTTP请求 类似于上述的需求,可能并不常见...因为在业务中确实遇到了这样子的场景,所以就自己动手开发了一个库... 实现原理: (1)底层IO通过netty搞 (2)维护一个tcp的长连接池,这样子就不用每次发送请求还要建立一个tcp连接了... 下面直接来看怎么用吧: (1)最常规的用法,向www.baidu.com发送100次get请

Arcgis for JS之Cluster聚类分析的实现(基于区域范围的)

原文:Arcgis for JS之Cluster聚类分析的实现(基于区域范围的) 咱们书接上文,在上文,实现了基于距离的空间聚类的算法实现,在本文,将继续介绍空间聚类之基于区域范围的实现方式,好了,闲言少叙,先看看具体的效果: 聚类效果 点击显示信息 显示单个聚类点 下面说说具体的实现思路. 1.数据组织 在进行数据组织的时候,因为是要按照区域范围的,所以必须得包含区域范围的信息,在本示例中,我用的数据依然是全国2000多个区县点的数据,并添加了省市代码,数据如下: 2.聚类思路 根据数据中“p

基于html5 canvas和js实现的水果忍者网页版

今天爱编程小编给大家分享一款基于html5 canvas和js实现的水果忍者网页版. <水果忍者>是一款非常受喜欢的手机游戏,刚看到新闻说<水果忍者>四周年新版要上线了.网页版的切水果游戏由百度 JS 小组开发,采用 vml + svg 绘图,使用了 Raphael,效果很赞,赶紧来膜拜一下.效果图如下: 在线预览   源码下载 实现的代码. html代码: <canvas id="view" width="640" height=&q