ExtJS是一种主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框架,它功能丰富,界面优美,不过在项目管理信息系统开发的过程中,发现ExtJS框架经常出现页面渲染失败的现象,主要表现在数据的列表页面。
1 如何判断页面是否渲染成功
在debugger模式下,通过对gridPanel渲染成功时生成的panel对象的属性与失败时生成的panel对象的属性进行对比,发现当渲染成功时panel的width属性总是大于0,而失败时panel的width属性总是小于或等于0,如下图:
渲染失败
渲染成功
2 解决方法
2.1 当页面只有一个panel时
当页面只有一个panel时,只需要在其返回一个panel对象前判断此panel的width属性,如果属性值小于或等于0,则重新加载。
2.2 当页面存在多个tapPanel时
当页面存在多个panel时,不仅要判断gridPanel是否渲染成功,同时也需要判断tapPanel是否渲染成功,如果不成功则重新加载。
注:在项目管理系统中,很多页面存在多个panel时,当每生成一个panel,此panel的store都会调用一次load()方法,当页面所有panel都生成后,然后又会调用所需要显示的tabPanel的store的load()方法,这样就会造成页面加载过慢或者数据显示很慢。建议在构造panel的方法中不要调用store的load()方法加载数据,只需要在生成所有的tabPanel之后再加载所需要显示panel的数据。
3 代码范例
3.1 范例一
当数据量不大时:
//如果gridPanel渲染失败,则重新加载。 if(Ext.getCmp('workloadListID').width<=0){ document.location.reload() }
//如果tabPanel渲染失败,则重新加载 if(tabs.width<=0){ document.location.reload(); } |
3.2 范例二
当数据量很大时,页面可能一直加载失败,这样会不停的访问后台,会给服务器造成很大的压力,所以建议使用延时刷新。
//渲染失败时重新渲染 if(Ext.getCmp('changeListID').width<=0){ setTimeout("history.go(-0)",500); } |
注:如果利用panel的width属性无法达到要求,则可以使用height属性来判断是否渲染成功。
相关推荐
ExtJS是一种基于JavaScript的富客户端应用框架,它专注于构建用户界面,提供了丰富的组件库和强大的数据处理能力。Struts则是Java EE平台...这不仅有助于提升个人技能,也为团队协作和项目开发提供了标准化的解决方案。
用户提出的解决方案是给HIDDEN组件设置一个ID,然后在表单提交时通过ExtJs的getComponent方法获取该组件的实例,并调用setValue方法来设置值。这是一个典型的EXTJS编程模式,通过组件的ID来定位组件,并进行后续的...
- **解决方案**:正确的做法是直接解压下载的文件到项目目录中。如果使用的是如Visual Studio 2008等IDE进行开发,则只需将解压后的文件夹放入项目文件夹内即可。之后,在HTML页面中通过适当的`<script>`标签引用...
1. **SWFUpload 插件**:SWFUpload是一种流行的Flash-based文件上传解决方案,它可以处理大文件上传,且支持多文件选择。在ExtJS中集成SWFUpload,可以解决HTML5浏览器不支持多文件上传的问题。SWFUpload通过在后台...
5. **常见错误与解决方案** - **未渲染到指定ID的元素**:确保在HTML中有一个具有指定ID的元素供TabPanel渲染,否则会找不到目标元素。 - **元素未隐藏**:如果使用`contentEl`引入内容,该元素应该被设置为`...
ExtAspNet是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果, 目标是创建没有JavaScript,没有CSS,没有UpdatePanel,没有WebServices的Web应用程序。 支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome ...
-修正extjs最新版本(v3.2.2)中的一个bug,如果下拉列表中存在两个相同的Text,则SelectedValue返回值永远是第一个Text的值(feedback:ben.zhou)。 -应用补丁#6593, #6621(feedback:vbelyaev)。 +修正IE7下Grid分页...
使用Grid+Report报表控件的方法是一种推荐的解决方案,它结合了数据网格与报表的功能,能够更灵活地展示和打印数据。 #### 33. UniGUI的布局面板控件TUniRegionPanel `TUniRegionPanel`是一种用于布局控制的容器...
本文将深入探讨这两个工具如何协同工作,为开发者提供强大的后端和前端解决方案。 **Jade:高效的HTML模板引擎** Jade(现更名为Pug)是一种简洁、强大的模板语言,用于创建HTML。它通过简化的语法减少代码量,...