- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
standby: function(version) {
        FastChat.destroy();
        curFastChat.standby = true;
        var to = 1,
            cb = function() {
                if (!curNotifier.is_server) {
                    curFastChat.standbyTO = setTimeout(cb, to * 1000);
                    return;
                }
                ajax.post('notifier.php?act=a_get_reload', {
                    version: version
                }, {
                    onDone: function(navVersion, config) {
                        FastChat.lcSend('gotConfig', {
                            navVersion: navVersion,
                            config: config
                        });
                        FastChat.gotConfig(navVersion, config);
                    },
                    onFail: function() {
                        to *= 2;
                        curFastChat.standbyTO = setTimeout(cb, to * 1000);
                        return true;
                    }
                });
            };
        cb();
    },
    gotConfig: function(navVersion, config) {
        clearTimeout(curFastChat.standbyTO);
        if (!curFastChat.standby) {
            return;
        }
        setTimeout(function() {
            if (navVersion > stVersions['nav']) {
                debugLog('appending al loader');
                headNode.appendChild(ce('script', {
                    type: 'text/javascript',
                    src: '/al_loader.php?act=nav&v=' + navVersion
                }));
            }
            setTimeout(function() {
                if (navVersion <= stVersions['nav']) {
                    stManager.add(['notifier.js', 'notifier.css'], function() {
                        FastChat.init(config);
                    })
                    return;
                }
                setTimeout(arguments.callee, 100);
            }, 0);
        }, curNotifier.is_server ? 0 : irand(1000, 2000));
    },
    updateVersion: function(version) {
        FastChat.lcSend('standby', {
            version: version
        });
        FastChat.standby(version);
    },
    // Local connection: communication between tabs in one browser instanse
    lcSend: function(act, data) {
        // debugLog('fc::lcSend', act, clone(data));
        Notifier.lcSend('fastchat', extend({
            act: act,
            __id: curFastChat.me && curFastChat.me.id || vk.id
        }, data));
    },
    lcRecv: function(data) {
        if (isEmpty(data)) return;
        var act = data.act;
        if (data.__id != (curFastChat.me && curFastChat.me.id || vk.id)) {
            debugLog('drop foreign event', data);
            return;
        }
        delete data.act;
        delete data.__id;
        FastChat.lcFeed(act, data);
    },
    lcFeed: function(act, data) {
                                 
        
Комментарии (4) RSS
Добавить комментарий