Ext.data.JsonP

Hierarchy

Ext.Base
Ext.data.JsonP

Files

本类是用于创建JSONP请求. JSONP是一种允许跨域进行数据请求的机制. 更多详情参看这里wiki:JSONP.

Defined By

Properties

扩展事件

Defaults to: []

Ext.data.JsonP
: String

一个发送到服务器端的GET请求链接中的参数名称, 其值为请求完成时要执行的方法的名称. 默认为callback. 因此一般请求的 格式就会像这样:url?callback='My.Cat', { statics: { speciesName: 'Cat' // My.Cat.speciesName = 'Cat' }, constructor: function() { alert(this.self.speciesName); // 依赖 'this' }, clone: function() { return new this.self(); } }); Ext.define('My.SnowLeopard', { extend: 'My.Cat', statics: { speciesName: 'Snow Leopard' // My.SnowLeopard.speciesName = 'Snow Leopard' } }); var cat = new My.Cat(); // alerts 'Cat' 猫 var snowLeopard = new My.SnowLeopard(); // alerts 'Snow Leopard' 雪豹 var clone = snowLeopard.clone(); alert(Ext.getClassName(clone)); // alerts 'My.SnowLeopard'

Ext.data.JsonP
: Number

所有JsonP请求的默认超时时间(毫秒). 如果此时间内请求没有完成, 就会触发failure回调. 默认值30000.

Defaults to: 30000

Defined By

Methods

Ext.data.JsonP
( Object/String request )

中断一个请求. 如果没有指定request参数, 则所有进行中的请求都将被中断.

Parameters

( Object config )private

添加配置

Parameters

Parameters

( Object name, Object member )private

Parameters

( Object xtype )private

添加 Xtype

Parameters

( Array/Arguments ) : Objectdeprecatedprotected
调用原来的方法,这是以前的override重写 Ext.define('My.Cat', { constructor: function() { alert("I'm a cat!"); } }); ...

调用原来的方法,这是以前的override重写

Ext.define('My.Cat', {
    constructor: function() {
        alert("I'm a cat!");
    }
});

My.Cat.override({
    constructor: function() {
        alert("I'm going to be a cat!");

        this.callOverridden();

        alert("Meeeeoooowwww");
    }
});

var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
                          // alerts "I'm a cat!"
                          // alerts "Meeeeoooowwww"

This method has been deprecated since 4.1

版本 使用 callParent 代替.

Parameters

  • : Array/Arguments

    参数的参数,数组或'参数'对象 来自当前方法,例如: this.callOverridden(arguments)

Returns

  • Object

    返回调用重写方法的结果。

( Array/Arguments args ) : Objectprotected

所谓的"parent"方法是指当前的方法。 这是以前的方法派生或重写(参见 Ext.define)。

 Ext.define('My.Base', {
     constructor: function (x) {
         this.x = x;
     },

     statics: {
         method: function (x) {
             return x;
         }
     }
 });

 Ext.define('My.Derived', {
     extend: 'My.Base',

     constructor: function () {
         this.callParent([21]);
     }
 });

 var obj = new My.Derived();

 alert(obj.x);  // alerts 21

这可以用来重写如下:

 Ext.define('My.DerivedOverride', {
     override: 'My.Derived',

     constructor: function (x) {
         this.callParent([x*2]); // 调用原来的My.Derived构造
     }
 });

 var obj = new My.Derived();

 alert(obj.x);  // 现在提示 42

This also works with static methods.

 Ext.define('My.Derived2', {
     extend: 'My.Base',

     statics: {
         method: function (x) {
             return this.callParent([x*2]); // 调用 My.Base.method
         }
     }
 });

 alert(My.Base.method(10);     // alerts 10
 alert(My.Derived2.method(10); // alerts 20

然后,它也可以重写静态方法。

 Ext.define('My.Derived2Override', {
     override: 'My.Derived2',

     statics: {
         method: function (x) {
             return this.callParent([x*2]); // 调用 My.Derived2.method
         }
     }
 });

 alert(My.Derived2.method(10); // 现在提示 40

Parameters

  • args : Array/Arguments

    这个参数, 通过当前方法得到数组或者 arguments 对象, 例如: this.callParent(arguments)

Returns

  • Object

    返回调用父类的方法的结果。

Ext.data.JsonP
( Object request )private

清除script的错误处理

Parameters

Ext.data.JsonP
( String url, Object params, Object options )private

根据指定的url,参数和选项创建script标签. options参数是用来在重写的方法中使用.

Parameters

( Object config )private

拓展

Parameters

( Object name )private

得到配置项

Parameters

得到初始化配置项

Parameters

Ext.data.JsonP
( Object request )private

处理加载script时的中断.

Parameters

Ext.data.JsonP
( Object request )private

处理加载script时的错误.

Parameters

Ext.data.JsonP
( Object result, Object request )private

处理成功响应

Parameters

  • result : Object

    请求的结果

  • request : Object

    请求对象

Ext.data.JsonP
( Object request )private

处理请求超时

Parameters

( Object config )private

根据名称判断配置项是否存在

Parameters

( Object config ) : Objectprotected
这个类的初始化配置。典型例子: Ext.define('My.awesome.Class', { // 这是默认配置 config: { name: 'Awesome', isAwes...

这个类的初始化配置。典型例子:

Ext.define('My.awesome.Class', {
    // 这是默认配置
    config: {
        name: 'Awesome',
        isAwesome: true
    },

    constructor: function(config) {
        this.initConfig(config);
    }
});

var awesome = new My.awesome.Class({
    name: 'Super Awesome'
});

alert(awesome.getName()); // 'Super Awesome' 超级棒

Parameters

Returns

  • Object

    mixins 混入原型 键-值对

Ext.data.JsonP
( Object request )private

通过在HEAD元素中添加script标签的方式加载脚本. 使用者可以重写此方法(就像createScript).

Parameters

( Object name, Object mixinClass )private

内部使用混入预处理器(mixins pre-processor)

Parameters

( Object names, Object callback, Object scope )private

更新配置项

Parameters

( Object fn, Object scope )private

扩展事件

Parameters

Ext.data.JsonP
( Object options ) : Object

Makes a JSONP request. 发送一个JSONP请求

Parameters

  • options : Object

    一个包含以下属性的对象. 注意options参数的优先级高于类定义的默认值.

    • url : String
      请求的URL.
    • params : Object (可选)
      一个包含了多组键值对的参数对象, 这些参数将随请求一同发送.
    • timeout : Number (可选)
      参见timeout
    • callbackKey : String (可选)
    • callbackName : String (可选)
      本次请求使用的方法名. 此名称默认是自动生成的:可选)
    • disableCachingParam : String (可选)
    • success : Function (可选)
      请求成功执行后执行的方法.
    • failure : Function (可选)
      请求执行失败时执行的方法.
    • callback : Function (可选)
    • scope : Object (可选)
      执行回调函数时的作用域: 回调函数中出现的"this"所指的对象. 默认为浏览器的window.

Returns

  • Object

    request 一个包含所有请求详细信息的对象.

( Object config, Object applyIfNotSet )private

设置配置项

Parameters

Ext.data.JsonP
( Object request )private

为请求的script设置错误处理.

Parameters

获取从该对象被实例化的类的引用。 请注意不同于 self, this.statics()是独立的作用域,无论this是否运行,总是返回其中的调用类。

Ext.define('My.Cat', {
    statics: {
        totalCreated: 0,
        speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
    },

    constructor: function() {
        var statics = this.statics();

        alert(statics.speciesName);     // 总是等于'Cat',无论'this'是什么,
                                        // 相当于:My.Cat.speciesName

        alert(this.self.speciesName);   // 依赖 'this'

        statics.totalCreated++;
    },

    clone: function() {
        var cloned = new this.self;                      // 依赖 'this'

        cloned.groupName = this.statics().speciesName;   // 相当于: My.Cat.speciesName

        return cloned;
    }
});


Ext.define('My.SnowLeopard', {
    extend: 'My.Cat',

    statics: {
        speciesName: 'Snow Leopard'     // My.SnowLeopard.speciesName = 'Snow Leopard'
    },

    constructor: function() {
        this.callParent();
    }
});

var cat = new My.Cat();                 // alerts 'Cat', 然后提示 'Cat'

var snowLeopard = new My.SnowLeopard(); // alerts 'Cat', 然后提示 'Snow Leopard'

var clone = snowLeopard.clone();
alert(Ext.getClassName(clone));         // alerts 'My.SnowLeopard'
alert(clone.groupName);                 // alerts 'Cat'

alert(My.Cat.totalCreated);             // alerts 3

Returns

配置扩展