PushState HTML5 Ajax JSPTagEx J2EE
該系統目前隻相容新版本浏覽器,如果你要使用本系統,請使用chrome全系,firefox全系,IE10+,Safari全系,Opera全系等;
歡迎來Q - Q群讨論:431040030(請注明Java等字樣),可在群裡下載下傳整個項目源碼
技術路線
小小系統的背後,它可蘊藏着諸多好玩的技術哦:)
- 基于JSPTagEx架構全程功能點探索的項目:緩存,AOP,Rewrite,高可讀URI等;
- SPA:真正全程Ajax,相比MPA網頁應用,他的開發難度不是大了一點點哦:)
- Restful API:Get,Put,Post,Delete請求标準化,隻有現代浏覽器才全支援哦:)
- HTML5:有好玩的HTML5特有技術哦,你發現了麼:)
- Web推送
- 一次登入,永久使用;
源碼分享
倫理片 http://www.dotdy.com/
首先需要一個能支援SPA開發的js架構,我們選用了Backbone,在背景方面,需要将所有請求轉發到一個servlet來處理,代碼如下:
這裡用到了架構的***,表示所有teams字首的請求都攔截到這個servlet處理,在js方面定義route:
Js代碼
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLyFGdz9lbvNWavw1cldWYtl2Lc12bj5SZ5VGdp5Cash3Yvw1LcpDc0RHaiojIsJye.png)
- $.webApp.AppRouter = Backbone.Router.extend({
- routes: {
- '': 'root',
- 'teams/auth/logout': 'logout',
- 'teams(/:pageid)': 'goPage',
- 'teams/project/edit(/:id)':'goProjectEdit',
- 'teams/project/create':'goProjectCreate',
- 'teams/project(/:id)':'goProject',
- },
- initialize: function() {
- },
- logout:function(){
- $.get("/restful/api/user/logout",function(json){
- location.reload();
- });
- },
- root: function() {
- Backbone.history.navigate("teams/myindex", { trigger: true });
- },
- goPage: function(pageid) {
- if(pageid == "myindex"){
- if($.webApp.teamList == undefined || $.webApp.teamList.length == 0){
- $("h3[action=showmyteam]").text("尚未加入Team");
- var html = _.templateFromUrl('/restful/teams/template?pagename=belong_zero_team');
- $("#container").html(html());
- }
- else{
- $("#container").html(new $.webApp.TemplateView(pageid).render().$el.html());
- }
- }
- else{
- $("#container").html(new $.webApp.TemplateView(pageid).render().$el.html());
- }
- $.webApp.initMenu(function(){
- if(pageid == "sql_execute"){
- pageid = "sql";
- }
- if(pageid == "weekly"){
- pageid = "log";
- }
- $.webApp.openMenu(pageid);
- });
- },
- goProject:function(id){
- $("#container").html(new $.webApp.TemplateView("project", {prjid:id}).render().$el.html());
- $.webApp.initMenu(function(){
- $.webApp.openMenu("index");
- });
- },
- goProjectCreate:function(){
- $("#container").html(new $.webApp.TemplateView("new_project",{prjid:""}).render().$el.html());
- $.webApp.initMenu(function(){
- $.webApp.openMenu("index");
- });
- },
- goProjectEdit:function(id){
- $("#container").html(new $.webApp.TemplateView("new_project",{prjid:id}).render().$el.html());
- $("#psuhBtn").html("儲存項目");
- $.webApp.initMenu(function(){
- $.webApp.openMenu("index");
- });
- }
- });
影音先鋒電影 http://www.iskdy.com/