ajax实现页面布局,Tab页界面,用jQuery及Ajax技术实现

从桌面开发的时代开始,Tab页就是一个优异的界面布局形式,兼有菜单的样式和充分复用有限的界面的优点。

到了B/S开发时代,网页前端布局也把Tab页的布局形式吸收了过来。特别是和Ajax技术结合起来,可以更充分发挥Tab页的良好表现力和数据缓存的优势,是一种良好的网页布局形式。

网上的Tab页代码很多,实现也大同小异 ,但代码都显得凌乱,若要真的用的话,必须费劲的吃透它,才能进行二次定制开发,为我所用。实际上实现这个Tab页界面非常简单,仅仅是通过Ajax技术偷偷的获取信息,然后在一块区域轮流显示而已(通过显示和隐藏层,或复用一个层,轮流向里边填充Html数据)。

自己的开发的代码自己最清楚,用起来也应该最顺手,要扩展的话脑子也不犯晕。代码如下,还在不断修改中。

代码特点:

1,完全实现Tab逻辑功能,Tab的样式完全交由前端代码控制,十分灵活。

2,使用Ajax技术,数据从服务器端按需取用,改善了前端的界面观感,提高了页面的性能。在重新浏览器窗口前,所有已经加载的tab页的数据被缓存在浏览器端,不再从服务器端调取,大大节约了网络带宽,改善了界面的性能。

3,tab页触发可以根据需要选用click或mouseover等事件。

4,可以配置tab加载后默认触发的页。

5,界面以table布局,只需要配置关键对象的 id 即可工作。

-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>

我的Tabs选项卡(Ajax版本)

body {font-size:12px; }

#tab0,#tab1,#tab2 {background:url(images/gray.png); cursor:hand;}

$(document).ready(function()

{

//————————-

//tabs 配置信息

var tabs = [”#tab0″, “#tab1″, “#tab2″]; //tab 数组 id

var datas = “#div_data”; //显示区对象的id号

var event_type = “mouseover”; //触发事件(click/dblclick/mouseover/focus/…)

var default_tab = “#tab0″;

//切换图片

var tab_selected_bgimg = “images/green.png”;

var tab_unselected_bgimg = “images/gray.png”;

//切换文本颜色

var tab_selected_txtcolor = “#ff6600″;

var tab_unselected_txtcolor = “#666666″;

//

urls = [

“my_ajax_server.php?app=tab0″,

“my_ajax_server.php?app=tab1″,

“my_ajax_server.php?app=tab2″,

]

//**Begin:固定代码*********************************

for (var i=0; i

{

$(tabs[i]).bind(event_type, handler);

}

$(default_tab).trigger(event_type);

//

function handler()

{

//初始化缓存数组

var localdatas = new Array(); //缓存浏览器本次数据

for (var i=0; i

{

localdatas[i]=”;

}

//重置所有tabs

for (var i=0; i

{

$(tabs[i]).css(”background-image”, “url(”+ tab_unselected_bgimg +”)”);

$(tabs[i]).css(”color”, tab_unselected_txtcolor);

}

var curr_index;

for(var i=0;i

{

if($(tabs[i]).attr(”id”)==$(this).attr(”id”))

{

curr_index = parseInt(i);

}

}

//

$(this).css(”background-image”, “url(”+ tab_selected_bgimg +”)”);

$(this).css(”color”, tab_selected_txtcolor);

if(localdatas[curr_index]==”)

{

//ajax获取数据(默认method=get)

$.ajax

({

url: urls[curr_index], //后台处理程序

cache: false,

timeout: 20000,

error:function()

{

alert(”error while submitting”);

},

success:function(data)

{

localdatas[curr_index] = data; //缓存浏览器本次数据

$(datas).html(data);

}

});

}

else

{ //显示缓存数据

$(datas).html(datas[curr_index]);

}

}

//**End:固定代码*********************************

//—————–

});

tab0tab1tab2

my_ajax_server.php文件:

/*******************************************

* File: my_ajax_server.php

********************************************/

error_reporting(7);

set_magic_quotes_runtime(0);

$app = $_GET[’app’];

switch ($app)

{

case “tab0″:  //

?>

from TAB0

break;

case “tab1″:  //

?>

from TAB1

break;

case “tab2″:  //

?>

from TAB2

break;

default:

echo ‘my_ajax_server.php error.’;

break;

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值