书签 分享 收藏 举报 版权申诉 / 21

类型Struts 标签 BigPipe 专业技术实现.docx

  • 文档编号:8622255
  • 上传时间:2023-02-01
  • 格式:DOCX
  • 页数:21
  • 大小:93.50KB
")。

//引入移动内容的JavaScript文件,就是

BigPipeWriter.instance().writeJavaScript(bigPipeJSPath,writer)。

//调用moveContent方法的脚本代码

BigPipeWriter.instance().writeFromToTo(name,writer,copy)。

}catch(Exceptione){

e.printStackTrace()。

}

returnend。

}

在清单3的start方法里,执行flush,将已经加载的内容先写回浏览器,使用一个div包含主体内容。

在end方法里,不仅要写回div的后半部分,还要将移动内容的JavaScript代码写回去。

实际上就是

其中moveContent方法就是在bigpipe.js里定义的。

为了让bigPipeFrom的内容知道要移动到什么位置,所以在bigPipeTo标签对应的BigPipeTo类里,需要用一个div包围,BigPipeTo的代码如清单4所示。

清单4.BigPipeTo关键代码

publicbooleanstart(finalWriterwriter){

booleanresult=super.start(writer)。

try{

writer.write("")。

}catch(IOExceptione){

e.printStackTrace()。

}

returnresult。

}

@Override

publicbooleanend(Writerwriter,Stringbody){

booleanend=super.end(writer,body)。

try{

writer.write("

")。

}catch(IOExceptione){

e.printStackTrace()。

}

returnend。

}

最后,只要将bigPipeFrom标签里的div内容,移动到bigPipeTo的div里,就完成了。

移动div内容的JavaScript代码非常简单,代码如清单5所示。

清单5.JavaScript移动内容的代码

functionmoveContent(fromId,toId)

{

document.getElementById(toId).innerHTML=document.getElementById(fromId).innerHTML。

document.getElementById(fromId).innerHTML=""。

}

基于以上的代码实现,bigPipeFrom使用的顺序,就是网页模块PageLet加载并显示的顺序,调整代码就等同于调整了加载顺序。

达到了重要在前,次要在后的效果。

多线程实现

从单线程BigPipe的实现方式可以看出,单线程并不能解决总时间加载慢的问题,它更适合对文档内容显示按照优先级排序的需求。

而要是总体时间过慢,就要考虑多线程的实现方式。

Java中提供了Concurrent框架可以很轻松的实现多线程技术。

先将页面内容分为多个的Page

配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
Struts 标签 BigPipe 专业技术实现 专业技术 实现
提示  冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:Struts 标签 BigPipe 专业技术实现.docx
链接地址:https://www.bdocx.com/doc/8622255.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2022 冰点文档网站版权所有

经营许可证编号:鄂ICP备2022015515号-1

收起
展开