Sammy.js的轻量级替代品

时间:2012-03-18 14:22:48

标签: javascript sammy.js

是否有任何小框架提供类似于sammy.js的哈希/ url处理?我需要将回调绑定到路由 - 不仅用于“正常”获取请求,还用于post / put / delete提交(由链接/表单触发或从我的代码手动触发)。

这就是它,因为我已经在使用其他一些框架/库,比如jQuery和knockout.js,我不想包含像Sammy这样的框架(它提供了太多的功能,我不会去使用)。

6 个答案:

答案 0 :(得分:10)

我没有成功为这项任务找到一个好的解决方案,所以我最终写了一个非常小的组件,为我做这个工作(没有别的)。

它被称为 Simrou ,可以在https://github.com/buero-fuer-ideen/Simrou分叉

答案 1 :(得分:8)

History.js

  

History.js在所有浏览器中优雅地支持HTML5历史/状态API(pushState,replaceState,onPopState)。包括对数据,标题,replaceState的持续支持。支持jQuery,MooTools和Prototype。对于HTML5浏览器,这意味着您可以直接修改URL,而无需再使用哈希。对于HTML4浏览器,它将恢复使用旧的onhashchange功能。

答案 2 :(得分:5)

您可以使用pager.js。 它非常酷的java脚本库,您可以使用它来分配页面标题,它可以帮助您处理哈希/ URL。

访问 pagerjs.com

答案 3 :(得分:4)

为了完整,我想提到crossroads.js我只是作为史蒂夫桑德的Yeoman Knockout Generator的一部分尝试过的。

看起来很优雅,但我会更感谢examples。特别是,我没有得到任何搜索结果“ crossroads.js login ”或“ crossroads.js auth ”:(

  

Crossroads.js是一个路由库,受到Rails,Pyramid,Django,CakePHP,CodeIgniter等框架上的URL Route / Dispatch实用程序的启发......它解析字符串输入并通过匹配来决定应该执行哪个动作反对多种模式的字符串。

     

它是一个功能强大且灵活的路由系统。如果使用得当,它可以通过解耦对象以及抽象导航路径和服务器请求来降低代码复杂性。

答案 4 :(得分:3)

另一个替代方案,即只进行路由,跳过模板等的是Davis.js,请参阅http://davisjs.com/。只有依赖是jQuery。

答案 5 :(得分:2)

您可以使用jQuery address plugin进行深层链接。