I have started my new single page application. So far I was able to create login/authentication process and build the templates for the Home.cfm page. While looking around the web I see that JQuery can provide navigation template for single page app. My current code is old fashion and here is what I have. So in root folder I have index.html
and here is content of that page:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="Refresh" content="0; URL=Login.cfm" /> </head> <body></body> </html>
You can see the url
in meta tag redirects to Login.cfm. First thing I would like for my website to show only web site name instead of what I have now:
https://example.com/Login.cfm
After user entered Username and Password in Login.cfm I will process authentication with Auth.cfc where I check user credentials. If they successfully pass that step I lead them to Home.cfm
. This page is main page of my SPA. Then my url looks like this:
https://example.com/Home.cfm
In Home.cfm
I have code that is organize and loaded in different .html
files. Code does work and I have decent performance but I would like to use JQuery navigation template method something like MVC. I would prefer to use my current technology stak JQuery, Bootstrap 3, HTML5, CSS and ColdFusion 2016. I looked over few examples but still did not understand how to reorganize my application. I use IIS
web server on my site. Here is example of my Home.cfm
page:
#main-container { padding-top: 20px; } .nav-tabs { margin-bottom: 0; } .tab-content { padding-bottom: 10px; } div.tab-box { background-color: #f8f8f8; ; } ul.nav-tabs>li.active>a, ul.nav-tabs>li.active>a:focus, ul.nav-tabs>li.active>a:hover { background-color: #f8f8f8; }
<!DOCTYPE html> <html lang="en"> <head> <title>SPA</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <script language="javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <script language="javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> </head> <body> <div id="main-container" class="container"> <nav class="navbar navbar-default"> <div class="container-fluid"> <p class="navbar-text"><span class="glyphicon glyphicon-home"></span> <b>Welcome to My Application!</b></p> <ul class="nav navbar-nav navbar-right"> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#">Menu<span class="caret"></span></a> <ul id="main-menu" class="dropdown-menu"> <li class="active"><a href="/tab1-page" data-container="tab1-container">Tab 1</a></li> <li><a href="/tab2-page" data-container="tab2-container">Tab 2</a></li> <li><a href="/tab3-page" data-container="tab3-container">Tab 3</a></li> </ul> </li> <li> <a href="#" data-toggle="popover" role="button"> <span class="glyphicon glyphicon-user"></span> </a> </li> <li> <a href="#" data-toggle="confirmation" data-popout="true" role="button" id="log_out"> <span class="glyphicon glyphicon-log-in"></span> Logout</a> </li> </ul> </div> </nav> <div id="tab1-container"> <cfinclude template="Includes/Tab1.html"> </div> <div id="tab2-container"> <cfinclude template="Includes/Tab2.html"> </div> <div id="tab3-container"> <cfinclude template="Includes/Tab3.html"> </div> </div> <script language="javascript" src="JS/Tab1.js"></script> <script language="javascript" src="JS/Tab2.js"></script> <script language="javascript" src="JS/Tab3.js"></script> </body> </html>
I use JQuery to navigate user to different template once they click on the menu. Basically this will show/hide the elements on the screen. If anyone can provide some good tutorial or example on how this can be organize please let me know.