`
征途2010
  • 浏览: 249727 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ExtJS渲染失败解决方案(一)

阅读更多

ExtJS是一种主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框架,它功能丰富,界面优美,不过在项目管理信息系统开发的过程中,发现ExtJS框架经常出现页面渲染失败的现象,主要表现在数据的列表页面

 

1      如何判断页面是否渲染成功

 debugger模式下,通过对gridPanel渲染成功时生成的panel对象的属性与失败时生成的panel对象的属性进行对比,发现当渲染成功时panelwidth属性总是大于0,而失败时panelwidth属性总是小于或等于0,如下图:         

渲染失败

 

渲染成功

2     解决方法

2.1   当页面只有一个panel

当页面只有一个panel时,只需要在其返回一个panel对象前判断此panelwidth属性,如果属性值小于或等于0,则重新加载。

2.2   当页面存在多个tapPanel

当页面存在多个panel时,不仅要判断gridPanel是否渲染成功,同时也需要判断tapPanel是否渲染成功,如果不成功则重新加载。

 

注:在项目管理系统中,很多页面存在多个panel时,当每生成一个panel,此panelstore都会调用一次load()方法,当页面所有panel都生成后,然后又会调用所需要显示的tabPanelstoreload()方法,这样就会造成页面加载过慢或者数据显示很慢。建议在构造panel的方法中不要调用storeload()方法加载数据,只需要在生成所有的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);

}

 

 

注:如果利用panelwidth属性无法达到要求,则可以使用height属性来判断是否渲染成功。

分享到:
评论

相关推荐

    Extjs结合Struts版的demo

    ExtJS是一种基于JavaScript的富客户端应用框架,它专注于构建用户界面,提供了丰富的组件库和强大的数据处理能力。Struts则是Java EE平台...这不仅有助于提升个人技能,也为团队协作和项目开发提供了标准化的解决方案。

    EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题

    用户提出的解决方案是给HIDDEN组件设置一个ID,然后在表单提交时通过ExtJs的getComponent方法获取该组件的实例,并调用setValue方法来设置值。这是一个典型的EXTJS编程模式,通过组件的ID来定位组件,并进行后续的...

    Extjs学习过程中新手容易碰到的低级错误积累

    - **解决方案**:正确的做法是直接解压下载的文件到项目目录中。如果使用的是如Visual Studio 2008等IDE进行开发,则只需将解压后的文件夹放入项目文件夹内即可。之后,在HTML页面中通过适当的`&lt;script&gt;`标签引用...

    Ext 文件上传 Icons

    1. **SWFUpload 插件**:SWFUpload是一种流行的Flash-based文件上传解决方案,它可以处理大文件上传,且支持多文件选择。在ExtJS中集成SWFUpload,可以解决HTML5浏览器不支持多文件上传的问题。SWFUpload通过在后台...

    课程ExtTabPanel文档tab嵌套tab.pdf

    5. **常见错误与解决方案** - **未渲染到指定ID的元素**:确保在HTML中有一个具有指定ID的元素供TabPanel渲染,否则会找不到目标元素。 - **元素未隐藏**:如果使用`contentEl`引入内容,该元素应该被设置为`...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    ExtAspNet是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果, 目标是创建没有JavaScript,没有CSS,没有UpdatePanel,没有WebServices的Web应用程序。 支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome ...

    ExtAspNet_v2.3.2_dll

    -修正extjs最新版本(v3.2.2)中的一个bug,如果下拉列表中存在两个相同的Text,则SelectedValue返回值永远是第一个Text的值(feedback:ben.zhou)。 -应用补丁#6593, #6621(feedback:vbelyaev)。 +修正IE7下Grid分页...

    UniGUI集合说明

    使用Grid+Report报表控件的方法是一种推荐的解决方案,它结合了数据网格与报表的功能,能够更灵活地展示和打印数据。 #### 33. UniGUI的布局面板控件TUniRegionPanel `TUniRegionPanel`是一种用于布局控制的容器...

    MEAN网站开发#5:Jade和Express

    本文将深入探讨这两个工具如何协同工作,为开发者提供强大的后端和前端解决方案。 **Jade:高效的HTML模板引擎** Jade(现更名为Pug)是一种简洁、强大的模板语言,用于创建HTML。它通过简化的语法减少代码量,...

Global site tag (gtag.js) - Google Analytics