小编Eva*_*oli的帖子

Sencha Touch 2如何清理资源

我开始使用Sencha Touch 2,我只是想知道它是如何处理资源清理的.

特别是:

  • 想象一下,我们有一堆由url重定向触发的控制器.这些Controller实例是否会被缓存,或者Sencha是否每次需要在控制器上调用方法时都会创建新实例

  • 视图相同.sencha是否缓存视图,或者每次需要再次渲染时都会重新创建它们.什么时候视图被破坏(如果是)?

  • 我可以控制sencha如何处理这些事情吗?

sencha-touch sencha-touch-2

7
推荐指数
1
解决办法
1730
查看次数

2dsphere vs 2d指数表现

我需要快速查询以查找某点的某个GPS半径内的所有文档.半径很小,精度不是那么关键,所以我不需要考虑球面几何形状.会有很多写作.使用2d索引而不是2dsphere,我会获得更好的性能吗?

gps mongodb database-performance

7
推荐指数
1
解决办法
3674
查看次数

在每个AJAX请求中发送用户详细信息(会话令牌)(Sencha Touch 2)

我正在使用用户特定的数据集构建Sencha Touch 2应用程序.

应用程序架构:

Sencha Touch App <=====>带有REST服务的Java服务器后端(许多AJAX请求=))

我实际拥有的是:

  • 使用用户名/密码登录用户

    应用程序初始化,登录表单开始发挥作用.在将表单作为AJAX请求提交后,服务器后端会检查用户数据并调用客户端回调函数.

我想做的是:

好的,不应该是问题.

但是我怎样才能实现以下目标:

大多数数据特定于一个用户,如果需要,应由REST服务返回(通过单击导航,...).我如何在每个AJAX请求中发送sessiontoken(见上文) - 所以服务器可以提供合适的数据集(假设令牌有效)?

在AJAX请求中发送cookie

我已经读过如果网址在同一个空间,cookie会自动添加到请求中,对吧?Java服务器位于同一个域(localhost:8080),但cookie不可用 - 而不是像"app.json"这样的URL上的请求.我认为跨域请求真的是域特定的吗?

在AJAX请求中发送参数

因为cookie不是我想到的"手动"向ajax请求添加参数的可能性.该应用程序将包含许多AJAX请求,这就是为什么我不想手动添加令牌 - 我试图覆盖Ext.Ajax的请求功能,但我失败了;-(:

(function() {
    var originalRequest = Ext.data.Connection.prototype.request;

    Ext.override(Ext.data.Connection, {
        request : function(options) {
            alert("Do sth... like add params");
            return originalRequest.apply(this, options);
        }
    });
})();
Run Code Online (Sandbox Code Playgroud)

错误:

未捕获错误:[错误] [Ext.data.Connection#request]未指定URL

我还尝试添加一个监听器

Ext.Ajax.add({
    listeners : {
        beforerequest :  function( conn, options, eOpts ){
           alert("Do sth... like add …
Run Code Online (Sandbox Code Playgroud)

javascript extjs sencha-touch-2

5
推荐指数
1
解决办法
3340
查看次数

React JS:区分Click和Click + Shift事件

这支笔显示我的问题:http://codepen.io/PiotrBerebecki/pen/RKxOKb

单击按钮时我可以更改背景颜色但是在单击时按住Shift键时我想应用不同的颜色.我当前的事件对象似乎无法访问键盘事件.

你知道怎么解决吗?

这是React代码:

class App extends React.Component {
  constructor() {
    super();
    this.handleClick = this.handleClick.bind(this);
    this.state = {
      wasOriginalColorChanged: false,
      buttonColor: 'blue'
    }
  }
  
  handleClick(e) {
    let newButtonColor;
        
    if (!this.state.wasOriginalColorChanged) {
      if (e.shifKey) {
        newButtonColor = 'green';
      } else {
        newButtonColor = 'tomato';
      }
    } else {
      newButtonColor = 'blue';
    }
      
    this.setState({
      buttonColor: newButtonColor,
      wasOriginalColorChanged: !this.state.wasOriginalColorChanged
    });
  }
  
  render() {
    return (
      <div className="button"
           onClick={this.handleClick}
           style={{backgroundColor: this.state.buttonColor}}>
        <p>Click me to change color to tomato</p>
        <p>Click me + …
Run Code Online (Sandbox Code Playgroud)

html javascript css events reactjs

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

Sencha Touch导航视图自动销毁

我正在使用Sencha Touch 2中的导航视图在我的应用程序中提供视图导航.

目前我正在使用在控制器的启动方法中创建视图对象(例如"VOCABI.view.Search",使用xtype "searchview")的方法,并通过在控制器配置中包含以下内容来引用它:

refs: {
    searchView: 'searchview'
}
Run Code Online (Sandbox Code Playgroud)

当我想要呈现搜索视图时,我将其推入导航视图,如下所示:

navView = this.getNavView();                  // Defined
navView.push([this.getSearchView()]);         // Defined by refs
Run Code Online (Sandbox Code Playgroud)

问题是当用户完成搜索并按下视图上的后退按钮时,searchView似乎被破坏,因此下次用户想要搜索某些东西时会导致麻烦,因为该getSearchView()方法现在返回null.

这是导航视图的默认行为,它在pop()调用方法时会破坏弹出的视图吗?

如果是这样,每次呈现搜索视图时,这是一个不好的解决方法吗?喜欢

Ext.create("VOCABI.view.Search");
this.getNavView().push([this.getSearchView()]); 
Run Code Online (Sandbox Code Playgroud)

非常感谢你的帮助!

sencha-touch sencha-touch-2

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

具有多个值的 Ext.util.Filter

我正在使用以下代码来过滤商店

var filter = new Ext.util.Filter({
        property: 'FIRST_NAME',
        value: 'ABC'
});

store.getFilters().add(filter);
Run Code Online (Sandbox Code Playgroud)

这工作正常。

现在,我想用多个值过滤它。我试过

    var filter = new Ext.util.Filter({
            property: 'FIRST_NAME',
            value: ('ABC' || 'XYZ')
    });

store.getFilters().add(filter);
Run Code Online (Sandbox Code Playgroud)

但这仅返回 XYZ 记录。任何其他方式来做到这一点。我正在使用煎茶 6

javascript extjs filter extjs6

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

点击"刷新"时如何完全重新加载我的Sencha Touch App?

我的列表视图布局类似于Pinterest,具有绝对定位的块.不幸的是,这似乎需要在刷新时进行完全重新初始化.如果仅重新加载商店(如下所示),则新块的位置不正确.

如何在用户点击刷新时重新加载应用程序?

这是我的观点:

Ext.require(['Ext.data.Store', 'MyApp.model.StreamModel'], function() {
    Ext.define('MyApp.view.HomeView', {
        extend: 'Ext.navigation.View',
        xtype:  'homepanel',

        requires: [
            'Ext.dataview.List',
        ],

        config: {
            title:            'Home',
            iconCls:          'home',
            styleHtmlContent: true,
            navigationBar: {
                items: [
                    {
                        xtype:    'button',
                        iconMask: true,
                        iconCls:  'refresh',
                        align:    'left',
                        action:   'refreshButton'
                    }
                ]
            },
            items: {
                title: 'My',
                xtype: 'list',
                itemTpl: [
                    '<div class="post">',
                        ...
                    '</div>'

                ].join(''),

                store: new Ext.data.Store({
                    model: 'MyApp.model.StreamModel',
                    autoLoad: true,
                    storeId: 'stream'
                }),
            }
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

模型:

Ext.define('MyApp.model.StreamModel', {
    extend: 'Ext.data.Model',
    config: {
        fields: [
            'post_id', …
Run Code Online (Sandbox Code Playgroud)

javascript extjs sencha-touch sencha-touch-2

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