PageRenderTime 23ms CodeModel.GetById 21ms app.highlight 1ms RepoModel.GetById 1ms app.codeStats 0ms

/javascripts/lib/docs/source/jsonp.html

https://bitbucket.org/ksokmesa/sina-asian
HTML | 88 lines | 80 code | 8 blank | 0 comment | 0 complexity | 4ab11c4d1bc83f41dd8394809d56da8f MD5 | raw file
Possible License(s): GPL-3.0
 1<html>
 2<head>
 3  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    
 4  <title>The source code</title>
 5    <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
 6    <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
 7</head>
 8<body  onload="prettyPrint();">
 9    <pre class="prettyprint lang-js">/*!
10 * Ext JS Library 3.2.1
11 * Copyright(c) 2006-2010 Ext JS, Inc.
12 * licensing@extjs.com
13 * http://www.extjs.com/license
14 */
15Ext.ns('Ext.ux');
16
17Ext.ux.JSONP = (function(){
18    var _queue = [],
19        _current = null,
20        _nextRequest = function() {
21            _current = null;
22            if(_queue.length) {
23                _current = _queue.shift();
24    			_current.script.src = _current.url + '?' + _current.params;
25    			document.getElementsByTagName('head')[0].appendChild(_current.script);
26            }
27        };
28
29    return {
30        request: function(url, o) {
31            if(!url) {
32                return;
33            }
34            var me = this;
35
36            o.params = o.params || {};
37            if(o.callbackKey) {
38                o.params[o.callbackKey] = 'Ext.ux.JSONP.callback';
39            }
40            var params = Ext.urlEncode(o.params);
41
42            var script = document.createElement('script');
43			script.type = 'text/javascript';
44
45            if(o.isRawJSON) {
46                if(Ext.isIE) {
47                    Ext.fly(script).on('readystatechange', function() {
48                        if(script.readyState == 'complete') {
49                            var data = script.innerHTML;
50                            if(data.length) {
51                                me.callback(Ext.decode(data));
52                            }
53                        }
54                    });
55                }
56                else {
57                     Ext.fly(script).on('load', function() {
58                        var data = script.innerHTML;
59                        if(data.length) {
60                            me.callback(Ext.decode(data));
61                        }
62                    });
63                }
64            }
65
66            _queue.push({
67                url: url,
68                script: script,
69                callback: o.callback || function(){},
70                scope: o.scope || window,
71                params: params || null
72            });
73
74            if(!_current) {
75                _nextRequest();
76            }
77        },
78
79        callback: function(json) {
80            _current.callback.apply(_current.scope, [json]);
81            Ext.fly(_current.script).removeAllListeners();
82            document.getElementsByTagName('head')[0].removeChild(_current.script);
83            _nextRequest();
84        }
85    }
86})();</pre>    
87</body>
88</html>