`

Ext Tree 加载超时 Timeout 问题的解决办法

阅读更多

      这几天老板让我将师姐曾经做过的一个预案推荐的功能跑起来,算法我没有深究,功能就是将推荐出来的预案按照树形显示出来,异步加载,点击根节点,才去后台取数据一次性将所有子节点获取,并展开。部署到服务器,页面也能访问,点击根节点,也能执行加载过程,后台运作也正常,但是前台总是超时,根节点停止获取数据,死掉了。

      查寻这方面的资料实在是少,因为大部分应用很难遇到这种情况,出现节点很多的,人家都是采取异步加载,点击一个父节点,才展开一个子节点,而这个是全部获取,另外师姐这个时间主要浪费在了预案推荐算法的执行上了,这是大头,具体算法没有研究,暂时提不出优化方案,目前就只是在现有情况下实现解决。

     将解决方法提出来,供其他遇到的朋友解决。将页面引用的ext-all.js文件打开,然后定位到requestData部分,如下所示,然后在Ext.Ajax.request中 添加 timeout配置项,设定超时时间,可自定,这里设定为五分钟。然后重新部署,允许,圆满解决。

   

  1. requestData : function(A, B) {  
  2.                 if (this.fireEvent("beforeload"this, A, B) !== false) {  
  3.                     this.transId = Ext.Ajax.request({  
  4.                                 method : this.requestMethod,  
  5.                                 url : this.dataUrl || this.url,  
  6.                                 success : this.handleResponse,  
  7.                                 failure : this.handleFailure,  
  8.                                                                timeout: this.timeout || 300000,//增加这一行,设置为5分钟  
  9.                                 scope : this,  
  10.                                 argument : {  
  11.                                     callback : B,  
  12.                                     node : A  
  13.                                 },  
  14.                                 params : this.getParams(A)  
  15.                             })  
  16.                 } else {  
  17.                     if (typeof B == "function") {  
  18.                         B()  
  19.                     }  
  20.                 }  

 当然有的人可能不大喜欢在ext-all.js中做全面修改,也可以这样修改。在页面js中,添加如下代码。

 

有store的

var connObj = new Ext.data.Connection({ 
timeout : 120000, 
url : ‘/jsp/dataSourceURL’, 
method : ‘POST’ 
});

var dataStore = new Ext.data.Store({ 
// load using HTTP 
proxy : new Ext.data.HttpProxy(connObj), 
reader : new Ext.data.JsonReader({ 
root : ‘rows’, 
totalProperty : ‘results’ 
}, recordFormat) 
});

树:

Ext.tree.TreeLoader.override({
requestData : function(node, callback){
if(this.fireEvent("beforeload", this, node, callback) !== false){
this.transId = Ext.Ajax.request({
method:this.requestMethod,
url: this.dataUrl||this.url,
success: this.handleResponse,
failure: this.handleFailure,
timeout: this.timeout || 30000,
scope: this,
argument: {callback: callback, node: node},
params: this.getParams(node) }else{
// if the load is cancelled, make sure we notify
// the node that we are done
if(typeof callback == "function"){
callback(); } });  

form : 

basicForm :timeout 属性设置

 

 

分享到:
评论

相关推荐

    Ext-tree加载

    Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载

    EXT tree 使用 实例 最新

    EXT Tree提供了丰富的功能,包括节点的动态加载、拖放操作、节点选择以及自定义图标和样式。 在EXT Tree的使用实例中,我们通常会涉及到以下几个关键知识点: 1. **配置项与属性**:EXT Tree允许通过配置项定制其...

    Ext tree json 动态加载完美实例

    在本文中,我们将深入探讨如何使用Ext JS的Tree Panel与JSON数据进行动态加载,并实现多选和单选功能。Ext JS是一种强大的JavaScript库,用于构建富客户端应用,而Tree Panel则是展示层次结构数据的一种组件。在后台...

    ext TREE

    【标题】"ext TREE"指的是在软件开发领域中,尤其是Java Web开发中,EXT JS库中的Tree组件。EXT JS是一个强大的JavaScript用户界面库,用于构建富客户端应用。Tree组件是EXT JS中的一个重要部分,它允许开发者创建可...

    Ext Tree示例

    Ext Tree 是 Ext JS 库中的一个组件,它用于在用户界面上展示层次化的数据结构,类似于文件系统的目录结构。在给定的资源中,我们有多个 HTML 文件(tree2.html, tres.html, s1.html, tree.html)和 JavaScript 文件...

    oa.rar_ext_ext java oa_ext oa_ext tree_java ext tree

    标题中的"oa.rar_ext_ext java oa_ext oa_ext tree_java ext tree"似乎是一个组合字符串,它可能代表了某个项目或教程的文件结构。其中,“oa”可能是项目或系统的名称,而“ext”、“java”、“oa_ext”、“tree_...

    EXT Tree的简单实践

    通过阅读和分析这个文件,可以深入理解 EXT Tree 的工作原理和使用方法。 7. **博客链接**:提供的博客链接 "https://zhengkaifl.iteye.com/blog/841338" 可能包含了作者关于 EXT Tree 的详细讲解和示例代码,建议...

    Ext.ux.tree.treegrid异步加载

    ### Ext.ux.tree.TreeGrid 异步加载知识点详解 #### 一、Ext.ux.tree.TreeGrid简介 在ExtJS框架中,`Ext.ux.tree.TreeGrid`组件是一种结合了树形结构与表格显示特性的控件,适用于展示具有层级关系的数据。通过...

    extTree例子点击出现等

    ExtTree是Ext JS库中的一个组件,用于创建和展示树形结构的数据。它在Web应用程序中广泛使用,特别是在需要组织和导航层次结构信息时。在本案例中,“extTree例子点击出现界面”指的是用户在浏览ExtTree时,通过点击...

    EXT TREE 扩展CHECKBOX JS

    这段代码告诉EXT JS,当我们加载树形数据时,每个节点都应使用`Ext.tree.TreeCheckNodeUI`来渲染,这样每个节点都会有一个与之关联的复选框。 `TreeCheckNodeUI`类提供了以下关键特性: 1. **复选框渲染**:在每个...

    Ext.tree.TreeLoader附带封装的json类

    `Ext.tree.TreeLoader`是Ext JS库中的一个组件,它负责加载和解析树形结构的数据,而JSON(JavaScript Object Notation)则是一种轻量级的数据交换格式,非常适合于在服务器和客户端之间传输数据。我们将通过实例...

    EXT tree学习 参考

    博文链接中提到的是ITEYE博客的一篇文章,可能详细讲解了EXT Tree的使用方法和示例代码,建议查阅该文章以获取更具体的操作步骤和实践案例。 EXT Tree的源码分析可以帮助开发者深入理解其内部工作原理,例如节点的...

    ext tree 分页

    在EXT JS框架中,"ext tree 分页"是一种优化技术,用于处理大量数据时避免页面卡顿的问题。在EXT JS的树形组件(TreePanel)中,如果一次性加载所有节点,特别是当树结构非常深或者节点数量巨大时,不仅会消耗大量...

    ext grid tree 应用

    在EXT JS框架中,"ext grid tree 应用"是一个常见的功能组合,它结合了Grid面板和Tree面板的优势,用于展示复杂的数据结构。Grid通常用于显示二维表格数据,而Tree则用于展示层次化的数据。在这个例子中,开发者通过...

    Ext 带多选的Tree

    6. **数据加载与渲染**:EXT JS的Tree组件通常与后端服务进行交互,通过`store`加载树数据。在`TreeCheckNode.js`中,我们可能会看到如何定义`store`以及如何将JSON数据转化为Tree节点的数据模型。 综上所述,"Ext ...

    自己写的一个动态从后台数据库加载Ext.tree的json数据工具类

    总之,这个动态加载Ext.tree的JSON数据工具类是解决前端与后端数据交互问题的一个实用方案,通过合理的编程技巧,可以实现高效、流畅的用户体验。在开发过程中,理解并掌握这种数据加载机制对于提升Web应用性能至关...

    Ext的gridpanel控件二次加载问题

    总之,解决Ext的gridpanel控件二次加载时丢失的问题需要对Ext JS的生命周期管理有深入的理解,并结合实际应用场景选择合适的策略。无论是使用全局变量还是优化加载机制,关键在于确保GridPanel实例和数据的正确管理...

    ext 异步加载树完整版

    在IT行业中,异步加载是一种优化用户体验的...总的来说,"ext 异步加载树完整版"涉及的是EXT JS框架中Tree Panel的异步数据加载机制,这是构建大规模数据树形结构时非常实用的技术,能够提升用户体验并优化资源使用。

    Ext tree json Demo

    Ext Tree JSON Demo是一个基于ExtJS库实现的异步加载树形结构的示例项目。ExtJS是一个强大的JavaScript UI框架,广泛用于构建富客户端应用程序。在本项目中,它被用来展示如何利用JSON数据来动态加载树节点,提高...

    Ext.Tree.Panel

    `Ext.Tree.Panel`是EXT JS库中的一个重要组件,用于展示层次结构的数据,通常用作树形菜单或文件系统目录的视图。这个组件是EXT JS框架中用于创建交互式、可扩展的树结构的工具。以下是对`Ext.Tree.Panel`相关知识的...

Global site tag (gtag.js) - Google Analytics