利用json隔离网站布局和页面实际模块的内容载入

news/2024/5/12 15:49:58/文章来源:https://blog.csdn.net/weixin_34128501/article/details/94678194

  在项目中,有个这样的需求:动态维护页面的布局,以及动态载入布局容器中的具体模块。最开始的实现方式是,在服务端一次性获取当前页面的布局结构,当前页面的所有功能模块,同时通过循环检索某一功能模块属于哪个容器并合理放置,最后获取具体功能模块的实际内容,一次性输出完成页面的显示。

  虽然解决了问题,但这种方式导致了单次请求返回数据的急剧增大,特别是在页面布局复杂、功能模块繁多时,尤其明显。

  经过多方验证,我决定采取将布局构建和内容获取进行隔离、分批次获取内容的方式,以达到减小单次请求数据量的目的。具体步骤如下:

  第一步:采用常规方式,返回页面布局HTML结构,同时也json方式,返回当前页面的所有功能模块基本信息

  布局HTML结构示例

ContractedBlock.gifExpandedBlockStart.gifCode
1 <div class="enjoosite_layout_container">
2   <div class="enjoosite_layout_item" columnindex="0"></div>  
3   <div class="enjoosite_layout_item" columnindex="1"></div>
4   <div class="enjoosite_layout_item" columnindex="2"></div>
5 </div>

 

  同步加载的功能模块JSON

ContractedBlock.gifExpandedBlockStart.gifCode
var __widgets = [
  {
"widgetId":64,"title":"静态文本","widgetName":"statichtml","key":"77","columnIndex":0,"sortIndex":1},
  {
"widgetId":62,"title":"EnjooSite | 熙杰科技知识库","widgetName":"statichtml","key":"76","columnIndex":1,"sortIndex":1},
  {
"widgetId":66,"title":"本页说明","widgetName":"statichtml","key":"82","columnIndex":1,"sortIndex":2}
];

 

  第二步:在客户端,利用js,将功能模块准确放置如对应的布局容器中

  我在布局容器HTML结构中,增加了columnindex属性,在功能模块的JSON配置中对应了columnIndex属性,因此利用此属性,辅以jQuery的强大选择功能,可以非常方便的将功能模块放置入对应容器,同时JSON配置中的sortIndex属性可以确定同一容器中的先后顺序。

  第三步:利用jQuery的ajax方法,分批次异步加载具体功能模块的实际内容

  我们可以看到,在功能模块的JSON配置中,每一个功能模块都具有:widgetName 和 key 2个属性,widgetName属性可以确定当前功能模块的实际类型,如上例中的"statichtml"表示静态HTML文本模块,而key属性,则对应于当前模块在系统业务逻辑中所对应的唯一关键值,这个关键值需要配合功能模块的具体类型进行综合应用,以实现从数据库或XML配置文件获取内容的目的。

  在异步获取功能模块的实际内容环节,我采取了分批次加载的方式,如果同时发出内容获取的ajax连接超过10个,那么后续的请求进入等待队列,等待前面的10个请求。当前10个请求返回一个时,则立即从等待队列中提出一个进行连接。这样,始终以比较平缓的数据请求量连接服务器,而页面内容也始终以比较缓和的方式呈现。

 

  这种方式还值得完善的地方就是,最好能够灵活设定,哪个功能模块的加载具有高优先级就更好了。呵呵呵,慢慢再完善了。

  (具体效果请浏览:http://vip.enjoosite.com,因为网站蹭的朋友VPS,所以速度体验可能不如我文章所说那么明显,仅提供我的实现思路而已,欢迎讨论)

转载于:https://www.cnblogs.com/Luna/archive/2009/04/20/1439647.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_738208.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

读《高性能网站建设指南》有感

这本书最大的特点是把管理人员和技术人员从传统的思维模式中解放出来&#xff0c;对于大多数管理人员和技术人员来说当谈到高性能网站和性能瓶颈时&#xff0c;总是习惯从系统硬件、网络、数据库、中间件、系统架构等方面去思考问题&#xff0c;诚然这些是至关重要的&#xff0…

www.red-gate.com网站淘宝之旅

现在说起应该是昨天的事了&#xff0c;我没啥事在网上“淘些宝贝”&#xff0c;我网上淘宝当然不是买东西&#xff0c;是上国外网上搜集些开源GIS和.NET Plateform Invoke(简写为PInvoke)资料。主要是讲一下我在http://www.red-gate.com/网站淘宝之旅。 淘宝一&#xff1a;PInv…

h5网站模板_企业为什么会选择h5响应式网站定制

企业为什么选择会做H5响应式网站定制?H5响应式网站定制到底有什么好处?怎样才能建立营销型的响应式网站?传统网站与H5响应式网站有什么区别?H5响应式网站定制的优势和特点&#xff1a;1、网站具有唯一性的。可以根据企业的需求量身网站定制样式。这种情况下&#xff0c;基本…

Step by Step WebMatrix网站开发之二:使用WebMatrix(2)

上一篇&#xff0c;从Web库创建了一个电子商务的网站。现在回到WebMatrix&#xff0c;看看它有什么功能。 由图1可以看到&#xff0c;WebMatrix主要有3个区域&#xff0c;顶部Ribbon区域&#xff0c;左边是功能区域&#xff0c;右边是信息或编辑区域。Ribbon区域的工具按钮会根…

这样的网站居然被客户说做得不好,不愿结款,

这样的网站居然被客户说做得不好&#xff0c;不愿结款&#xff0c; 朋友介绍&#xff0c;接了个小单&#xff0c;一千多元&#xff0c;做成后居然客户说图片不清晰&#xff08;客户提供的产品&#xff0c;客户的相机拍的&#xff0c;网页上显示的宽高就那么大&#xff0c;能有多…

wordpress 自定义分类url 重写_WordPress主题怎么搭建出更利于SEO的企业网站

WordPress完全支持中文&#xff0c;目前全球40&#xff05;的顶级网站都是使用WordPress网站构建的。 WordPress是最好的本地化开源程序之一。它完全支持i18n协议。本地粉丝也对其进行了本地化。 WordPress中文团队一直在本地化它。WordPress是可扩展的&#xff0c;WordPress是…

22个优秀的网站后台管理面板模版

在一些网站开发过程中&#xff0c;有非常多的例子是关于怎么学习如何创建网站前台设计&#xff0c;但是处理后台的文章是非常少&#xff0c;这篇文章将整理出22个非常优秀的管理后台面板模版帮助你减少网站的后台开发&#xff0c;节省时间。访问下面这些列表&#xff0c;选择您…

layui后台模板_大气漂亮美观的三个网站后台数据管理模板 大大提升你的开发效率...

今天整理了三个我做项目经常使用的三个网站后台模板&#xff0c;这三个模板都是开源的&#xff0c;可以下载商用&#xff0c;可基于它们开发任何网站&#xff0c;做为后台管理数据。这样能为你开发后台功能节约大量的时间。一.ok-admin一个很赞的&#xff0c;扁平化风格的&…

访问网站的拓扑图

大型网站系统的拓扑图:浏览器访问区域代理服务器的过程&#xff1a;转载于:https://blog.51cto.com/baiyan425/613397

一个php网站加入背景音乐,html页面中如何添加背景音乐

如果我们要在html页面中添加背景音乐效果&#xff0c;可以使用如下几种方式。方法一&#xff1a;在html文件中添加如下代码即可(音频文件根据需要进行更改)src"http://demo.mimvp.com/html5/take_you_fly.mp3">你的浏览器版本太低&#xff0c;不支持audio标签说明…

[关于百度] 网站描述description测试数据

为什么80%的码农都做不了架构师&#xff1f;>>> escription是网页内容的描述容器&#xff0c;早期搜索引擎根据这个来判定网页的主题和内容&#xff0c;现在的有几重的作用&#xff0c;一是&#xff1a;在搜索引擎网页收集的时候&#xff0c;会根据description进行…

学用MVC4做网站:序

重新整理的目录 序 一、用户 二、用户组 三、栏目 听说Win8和v2012发布,今天心血来潮重装了系统 感觉界面还是不错的。 安装一下vs2012学习一下mvc4,居然没找到Vs2012专业版破解的&#xff0c;干脆下载Express for Web ,算是支持正版吧&#xff01; 509M很快就下载完&#…

nginx建立的网站客户端点击下载docx的文档的时候能.zip的文件的解决方法

今天公司上传了一个网站&#xff0c;里面有个页面有个点击下载docx的链接&#xff0c;可是客户端用IE点击下载的时候却成了.zip的文件&#xff0c;而且打不开: google搜了一下说nginx不识别docx的扩展名&#xff0c;下面是原话&#xff1a; 导致原因&#xff1a; 从IIS或者Tomc…

网站性能分析(下)-让网站并行加载但顺序执行JS

如果网站不支持JavaScript&#xff0c;复杂的功能将无法正常工作。在开发当中通常有几个脚本会写在HTML文件的头部。你嵌入的越多&#xff0c;网站的速度潜在的变得越慢。因此提高并行加载速度变得非常有必要&#xff0c;在前面的文章当中我已经提供了2种提高网站响应速度的方法…

把图标变成圆形的html_如何让网站变成灰色?

是不是一晚上的时间&#xff0c;发现各大平台的网站页面都变成了灰色了&#xff0c;包括微信支付图标&#xff0c;那么如何让网站变成灰色呢&#xff1f;今天在代码中以一张简单的图片为示例。【1】在代码中以一张简单图片为例Document【1.2】网页效果图&#xff1a;【2】在sty…

搜java题的公众号_微信SEO,搜一搜,公众号排名优化策略详解!

微信SEO什么意思&#xff0c;搜一搜&#xff0c;公众号排名优化策略是什么&#xff1f; 这对于新媒体运营者而言&#xff0c;可能短时间内&#xff0c;并不能快速的做出回答&#xff0c;但是作为一名SEO人员&#xff0c;通常我们都可以理解微信SEO优化是什么意思&#xff01; 什…

从哪些角度改变,对网站转化率提升有帮助

有流量&#xff0c;零转化。此种现象&#xff0c;想必是很多的网站管理者都遇到过&#xff0c;是让他们最头疼的事情。这样的现象也充分的反应出了一点&#xff0c;网站的权重上没有什么问题&#xff0c;关键的是在于用户体验方面&#xff0c;有待提升。遇到问题&#xff0c;关…

用户 Outlook 2007 附件突然不能预览,在国外网站找了解决方案。

Outlook 2007 附件突然不能预览&#xff0c;在国外网站找了解决方案。服务器版本&#xff1a; exchange 2010 错误截图如下&#xff1a;解决方案&#xff1a;大体意思就是编辑一个注册表文件&#xff0c;导入进去就可以了。It doesnt work because it wasnt a valid registry f…

python 登录网站

为什么80%的码农都做不了架构师&#xff1f;>>> 有些网页需要你登录之后才可以访问&#xff0c;你需要提供账户和密码。 只要在发送http请求时&#xff0c;带上含有正常登录的cookie就可以了。 1、首先我们要先了解cookie的工作原理。 cookie是由服务器端生成&a…

触摸屏网站开发系列(一)-ios web App应用程序(ios meta)

触摸屏网站的开发其实现在来讲比前几年移动端网站开发好多了&#xff0c;触摸屏设备IOS、Android、BBOS6等系统自带浏览器均为WEBKIT核心&#xff0c;这就说明PC上面尚未立行的HTML5 CSS3能够运用在这里&#xff0c;极大的减少了工作量和资料的缺乏。 这篇文章讲述关于IOS触屏网…