一个项目中对页面进行优化

来源:互联网 发布:中日进出口贸易数据 编辑:程序博客网 时间:2024/06/01 10:10

  原为单个jsp页面。本来打算是把这18个jsp页面,做成一个主页面。左侧菜单,右侧主体置空后,替换为iframe。点击不同的链接,通过传参给一个js函数,来更改iframe的src,以及页面的banner图片、当前位置等(也有打算用ajax实现,但是用ajax还需要生成一个xmlhttp对象,多了一个步骤,不采用)。解决了如iframe高度自适应等问题(有的页面有有十几个点击隐藏显示div的操作,给iframe高度自适应带来了麻烦,但是通过主页面给iframe的onload设置高度初始值解决了。)

  一切顺利,但是问题是,从外部页面,进入主页后,然后又在主页通过点击链接更改了页面,点击刷新总是不能定位到当前显示的页面,而是跑到主页面。后来通过1、js传参+一个隐藏的input。2、把当前页面状态id传到剪贴板等,然后设置body的onbeforeload来解决,在firefox下,正常,在IE下不行,因为IE能检测到刷新事件,但是它只执行刷新事件中的系统函数,无法执行自定义的函数。

  又想了个办法,把当前页面状态id设到cookie中。果然IE、FIREFOX都正常,但是又有了新的问题,万一用户COKKIE关闭了不是又完了。

  最后,只有采用直接的方法,把链接改为直接的href链接,而不是执行某函数。这样通过网址传参给自身页面,然后用js得到参数的方式进行设定iframe的src、BANNER等,解决了改问题。

  这种方式只是在一个页面转来转去,和点击链接通过js函数更改页面局部的方式,在FIREFOX的yslow中的评分都是A,原为C,原载入量为150K左右,目前的经检测载入量除第一次150K外,其它全部只有十几,小几十K。所以也没原来想的糟糕,而且更简单。也更利于以后的cms的引进。

     同时优化的还有

    1、去除prototype.js,因为只使用了它的ajax功能,就把它去掉,自己写了个ajax创建函数,节省了70k。

    2、把一些色彩单调的图片转为gif格式,也节省了几十k。

    3、去除一些talbe,嵌套太多,去除一些,有的全部去掉,用padding和margin来达到同样的目的。

 

后台页面也优化了一部分:主要是1、去除</s:head>,用它,这个页面,就会成倍膨胀。2、有些图片,被上层东西遮盖。遮盖的部分就给去掉。3、dxhtml的两个js及一个css移至只使用它们的页面,而不是放在使用ajax的首页。4、jquery.js替换为压缩版的。