您好,欢迎访问一九零五行业门户网

Ajax+div页面布局效果

这次给大家带来ajax+div页面布局效果,ajax+div页面布局的注意事项有哪些,下面就是实战案例,一起来看一下。
效果演示:
①默认页面(index.jsp):
②:点击左侧 用户管理 标签下的 用户列表 选项后,右边默认页面内容更新为用户列表页(userlist.jsp)的内容 :
③:同理,点击 产品管理、订单管理 标签下的 产品列表、订单列表 时,右侧内容会相应的刷新为产品列表页(productlist.jsp)、订单列表页(recordlist.jsp)的内容
这样就使用ajax+p实现了左边菜单选择,右边内容显示的效果,下面就来看看具体的实现过程吧
一:
整个演示用的示例程序包含默认页面(index.jsp),用户列表页(userlist.jsp),产品列表页(productlist.jsp),订单管理页(recordlist.jsp)
使用了 bootstrap 框架和 fontawesome 的图标(没办法,bootstrap自带的图标太少了o(╯□╰)o),这俩货的使用方法请参见官网,都比较简单
先来看看index.jsp的代码吧,我基本都详细注释了:
<%@ page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8"%> <!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd"> <html lang="zh-cn">   <head>     <meta http-equiv="content-type" content="text/html; charset=utf-8">     <meta http-equiv="x-ua-compatible" content="ie=edge">  <%-- 在ie运行最新的渲染模式 --%>     <meta name="viewport" content="width=device-width, initial-scale=1">  <%-- 初始化移动浏览显示 --%>     <meta name="author" content="dreamer-1.">     <!-- 引入各种css样式表 -->     <link rel="stylesheet" href="css/bootstrap.css">     <link rel="stylesheet" href="css/font-awesome.css">     <link rel="stylesheet" href="css/index.css">  <!-- 修改自bootstrap官方demon,你可以按自己的喜好制定css样式 -->     <link rel="stylesheet" href="css/font-change.css">  <!-- 将默认字体从宋体换成微软雅黑(个人比较喜欢微软雅黑,移动端和桌面端显示效果比较接近) -->         <script type="text/javascript" src="js/jquery-1.12.3.min.js"></script>     <script type="text/javascript" src="js/bootstrap.min.js"></script>     <title>- 后台管理系统 -</title>   </head>   <body>   <!-- 顶部菜单(来自bootstrap官方demon)==================================== -->     <nav class="navbar navbar-inverse navbar-fixed-top">        <p class="container">         <p class="navbar-header">           <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" >             <span class="sr-only">toggle navigation</span>             <span class="icon-bar"></span>             <span class="icon-bar"></span>             <span class="icon-bar"></span>           </button>            <a class="navbar-brand" href="index.jsp">xxxx.com</a>         </p>         <p id="navbar" class="navbar-collapse collapse">           <ul class="nav navbar-nav navbar-right">                         <li><a href="###" onclick="showatright('userlist.jsp')"><i class="fa fa-users"></i> 用户列表</a></li>               <li><a href="###" onclick="showatright('productlist.jsp')"><i class="fa fa-list-alt"></i> 产品列表</a></li>             <li><a href="###" onclick="showatright('recordlist.jsp')" ><i class="fa fa-list"></i> 订单列表</a></li>             </ul>         </p>        </p>     </nav>   <!-- 左侧菜单选项========================================= -->     <p class="container-fluid">       <p class="row-fluie">         <p class="col-sm-3 col-md-2 sidebar">               <ul class="nav nav-sidebar">             <!-- 一级菜单 -->             <li class="active"><a href="#usermeun" class="nav-header menu-first collapsed" data-toggle="collapse">               <i class="fa fa-user"></i>  用户管理 <span class="sr-only">(current)</span></a>             </li>              <!-- 二级菜单 -->             <!-- 注意一级菜单中<a>标签内的href=#……里面的内容要与二级菜单中<ul>标签内的id=……里面的内容一致 -->             <ul id="usermeun" class="nav nav-list collapse menu-second">               <li><a href="###" onclick="showatright('userlist.jsp')"><i class="fa fa-users"></i> 用户列表</a></li>             </ul>             <li><a href="#productmeun" class="nav-header menu-first collapsed" data-toggle="collapse">               <i class="fa fa-globe"></i>  产品管理 <span class="sr-only">(current)</span></a>             </li>              <ul id="productmeun" class="nav nav-list collapse menu-second">               <li><a href="###" onclick="showatright('productlist.jsp')"><i class="fa fa-list-alt"></i> 产品列表</a></li>             </ul>             <li><a href="#recordmeun" class="nav-header menu-first collapsed" data-toggle="collapse">               <i class="fa fa-file-text"></i>  订单管理 <span class="sr-only">(current)</span></a>             </li>              <ul id="recordmeun" class="nav nav-list collapse menu-second">               <li><a href="###" onclick="showatright('recordlist.jsp')" ><i class="fa fa-list"></i> 订单列表</a></li>             </ul>           </ul>         </p>       </p>     </p> <!-- 右侧内容展示================================================== -->                <p class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">           <h1 class="page-header"><i class="fa fa-cog fa-spin"></i> 控制台<small>   欢迎使用xxx后台管理系统</small></h1>             <!-- 载入左侧菜单指向的jsp(或html等)页面内容 -->              <p id="content">                 <h4>                             <strong>使用指南:</strong><br>                   <br><br>默认页面内容……                 </h4>                               </p>          </p>      <script type="text/javascript">     /*      * 对选中的标签激活active状态,对先前处于active状态但之后未被选中的标签取消active      * (实现左侧菜单中的标签点击后变色的效果)      */     $(document).ready(function () {       $('ul.nav > li').click(function (e) {         //e.preventdefault();  加上这句则导航的<a>标签会失效         $('ul.nav > li').removeclass('active');         $(this).addclass('active');       });     });     /*      * 解决ajax返回的页面中含有javascript的办法:      * 把xmlhttp.responsetext中的脚本都抽取出来,不管ajax加载的html包含多少个脚本块,我们对找出来的脚本块都调用eval方法执行它即可      */     function executescript(html)     {       var reg = /<script[^>]*>([^\x00]+)$/i;       //对整段html片段按<\/script>拆分       var htmlblock = html.split(<\/script>);       for (var i in htmlblock)        {         var blocks;//匹配正则表达式的内容数组,blocks[1]就是真正的一段脚本内容,因为前面reg定义我们用了括号进行了捕获分组         if (blocks = htmlblock[i].match(reg))          {           //清除可能存在的注释标记,对于注释结尾-->可以忽略处理,eval一样能正常工作           var code = blocks[1].replace(/