小编Aci*_*ier的帖子

EXTJS 4.0:如何实现store.sync()方法的回调方法?

我正在使用Extjs 4.0,我需要一个方法的回调store.sync()方法?有没有人有办法解决吗?非常感谢!

store sync callback extjs4

4
推荐指数
1
解决办法
9369
查看次数

具有本地排序的缓冲存储(客户端)

我有一个缓冲网格,我已经实现了一个本地排序功能(客户端).我想在商店重新加载时删除列标题上的排序指示(较暗的背景和小箭头).

有谁知道如何在4.1中完成这个?

为了更清楚:

希望我的列可以排序.我不希望它们在禁用排序的情况下进行初始化.用户应该能够单击标题并对其进行排序.但是,我想要的是能够以编程方式关闭排序.即,删除从用户点击应用的任何排序类(诸如较暗背景和小排序方向箭头之类的东西).

我这样做的原因是因为我使用了一个修改过的缓冲存储,它允许我使用所有缓冲数据(不仅仅是显示的块)进行本地排序(客户端).通常,使用缓冲存储将禁用本地排序,因为它只会对网格中显示的数据进行排序 - 而不是内存中的所有数据,因此Sencha的人员使任何具有缓冲存储的网格自动禁用本地排序 - 只有远程排序工作.好吧,正如我所说,我的修改,所以它会工作 - 但是当这个缓冲的存储重新加载来自数据库的新数据时,它不喜欢方便的sortOnLoad功能正常网格是理所当然的.在我的用例中,删除排序状态比覆盖sortOnLoading功能更合乎逻辑,并使其对新数据应用相同的排序,因此,这个问题.

我现在已经解决了这个问题,我将在短期内发布一个答案以及我对本地排序的缓冲商店的实施,以防任何人感兴趣并且我自己将来参考.

我还应该指出,我非常了解在需要缓冲的商店上进行本地排序所带来的客户端性能损失(而不是仅仅使用服务器上的数据进行远程排序).我知道这可能是为什么Sencha不支持在他们的缓冲商店进行本地排序的原因.我已经评估了所有的优点和缺点,在我的具体用例中,这对我来说是最明智的事情.

sorting extjs extjs4 extjs4.1

3
推荐指数
1
解决办法
8428
查看次数

DBUtils QueryRunner实例化

我有一个webservice,在初始化时实例化一个带有数据源的QueryRunner.它将这一个QueryRunner对象用于webapp使用的多个不同servlet的所有servlet请求,方法是将其作为servlet上下文属性传递.即:

// in servlet context listener (on app initialization)
QueryRunner myQueryRunner = new QueryRunner(myDataSource);
myServletContext.setAttribute("queryRunner", myQueryRunner);

// in the servlets
QueryRunner myQueryRunner = (QueryRunner) myServletContext.getAttribute("queryRunner");
myQueryRunner.query(myStoredProcedure, handler, params)
Run Code Online (Sandbox Code Playgroud)

我想弄清楚这是不是瓶颈.servlet是否应该为QueryRunner每个请求实例化一个新的?

在寻找答案时,我也发现了这个AsyncQueryRunner.但我更加困惑,因为QueryRunnerAsyncQueryRunner的API文档中的解释说的完全相同.

我查看了这里的示例,似乎应该对每个请求进行实例化,但我不确定这是否只是因为它是示例代码.

换句话说,当QueryRunner我使用DBUtils时:

  1. QueryRunner每个请求都使用一个实例?(我现在在做什么)
  2. QueryRunner每个servlet请求都实例化一个新的?
  3. AsyncQueryRunner每个请求都使用一个实例?

java servlets object instantiation apache-commons-dbutils

3
推荐指数
1
解决办法
1823
查看次数

为什么 Netty HTTP 处理程序不可共享?

每当打开新连接时,Netty 都会实例化一组请求处理程序类。这对于像 websocket 这样的连接将在 websocket 的生命周期内保持打开状态似乎很好。

当使用 Netty 作为每秒可以接收数千个请求的 HTTP 服务器时,这似乎是垃圾收集的负担。每个请求都会实例化几个类(在我的例子中是 10 个处理程序类),然后在几毫秒后垃圾收集它们。

在具有中等负荷〜1000请求/秒的HTTP服务器,这将是10000类实例化和垃圾收集每一秒

似乎我们可以简单地 看到下面的答案创建可共享的处理程序,使用ChannelHandler.Sharable. 他们只需要是线程安全的。

但是,我看到打包在库中的所有非常基本的 HTTP 处理程序都不可共享,例如HttpServerCodecHttpObjectAggregator。此外,没有一个HTTP 处理程序示例是可共享的。99% 的示例代码和教程似乎都不会打扰它。Norman Maurer 的(Netty 的作者)中只有一句话说明了使用共享处理程序的原因:

为什么要共享一个通道处理程序?

在多个 ChannelPipelines 中安装单个 ChannelHandler 的一个常见原因是收集多个 Channel 的统计信息。

没有提到任何地方的 GC 负载问题。


Netty 已在常规生产环境中使用了近十年。对于高度并发的非阻塞 IO,它可以说是现存最常用的 Java 库。

换句话说,它的设计目的远不止我每秒 1000 个中等的请求。

是否有什么我错过了使 GC 负载不成问题的东西?

或者,我应该尝试实现自己的Sharable处理程序,其具有类似的功能来解码、编码和写入 HTTP 请求和响应吗?

java garbage-collection instantiation netty java-11

3
推荐指数
1
解决办法
900
查看次数

extjs 4折线图渲染问题

我在使用extjs渲染下面的折线图时遇到问题.具体来说,最后六个值为空,它们(正确地)未显示在系列行上,但(错误地)显示了一个标记点​​(请参见下图的右上角).

折线不良的折线图

我将数据库中的图形数据作为json:

// data store fields
Ext.define('Graphs', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'the_quota',     type: 'int'},
        {name: 'count_pt_year', type: 'int'},
        {name: 'date_string',   type: 'string'}
    ]
});

// get the graph data
var graphStore = Ext.create('Ext.data.Store', {
    model: 'Graphs',
    proxy: {
        type: 'ajax',
        url: 'sqlRequest.jsp?queryName=events_getGraph',
        timeout: 160000,
        reader: 'json'
    },
    autoLoad:false
});
Run Code Online (Sandbox Code Playgroud)

如果我更改查询以将这些空值作为空白而不是('')返回,则json读取器将它们转换为零,并且值在图表底部显示为零,并带有一个系列行,这比将标记贴在没有系列线的天花板.

我无法找到任何配置选项Ext.chart.Series来隐藏图表上的空值.我也没有能够找到一个配置选项Ext.data.Store来将空白作为空白返回而不是"0".

寻找其他一些解决方法.

或者有人从图书馆本身解决这些问题(ext-all.js)?

charts extjs extjs4

2
推荐指数
1
解决办法
4780
查看次数

在ExtJS MVC会话期间存储用户信息的正确方法

我在哪里将用户特定(会话)信息存储在ExtJS MVC应用程序中?

定义一个自定义基本控制器是否正确,该控制器可以包含具有用户特定信息的对象并在应用程序中使用它?

例:

Ext.define("MyApp.controller.BaseController", {
    extend:  "Ext.app.Controller", 

    session:  Ext.create("MyApp.lib.UserSession"),

    init: function() {
      var me = this;

      me.session.init();

      /** some code **/
    },

    doSomething: function() {
      var me = this;

      var counter = me.session.get("counter"); 
    }

});
Run Code Online (Sandbox Code Playgroud)

javascript extjs extjs4 extjs-mvc

0
推荐指数
1
解决办法
7887
查看次数