2014-09-10 63 views
0

在我的grails 2.3.7應用程序中,我使用的是atmosphere-meteor 0.8.3。在grails應用程序中使用Atmosphere Meteor插件刷新頁面時,JS和CSS文件無法加載

在我的主頁加載時,我訂閱了客戶端。默認情況下,我運行長輪詢;它工作正常。 在頁面刷新時,我取消訂閱客戶端。

但是,如果我刷新頁面;那麼一些JS和CSS無法加載。它發生10次刷新中的5次。

我做錯了什麼? (正如我在document.ready())上訂閱的。 或者我還需要做其他事情嗎?

任何幫助表示讚賞。

更新:

代碼中GSP訂閱:

$('body').bind('beforeunload',function(){ 
    Jabber.unsubscribe(); 
}); 
$(document).ready(function() { 
    if (typeof atmosphere == 'undefined') { 
     Jabber.socket = $.atmosphere; 
    } else { 
     Jabber.socket = atmosphere; 
    } 
    var atmosphereRequest = { 
     type: 'public', 
     url: 'atmosphere/public', 
     trackMessageLength: false 
    }; 
    //setTimeout(function(){ 
     Jabber.subscribe(atmosphereRequest); 
    //}, 10000); 
}); 

而且Jabber的變量

var Jabber = { 
    socket: null, 
    publicSubscription: null, 
    transport: null, 

    subscribe: function (options) { 
     var defaults = { 
      type: '', 
      contentType: "application/json", 
      shared: false, 
      //transport: 'websocket', 
      transport: 'long-polling', 
      fallbackTransport: 'long-polling', 
      trackMessageLength: true 
     }, 
     atmosphereRequest = $.extend({}, defaults, options); 
     console.log(atmosphereRequest); 
     atmosphereRequest.onOpen = function (response) { 
      console.log('atmosphereOpen transport: ' + response.transport); 
     }; 
     atmosphereRequest.onReconnect = function (request, response) { 
      console.log("atmosphereReconnect"); 
     }; 
     atmosphereRequest.onMessage = function (response) { 
      console.log("on message"); 
      Jabber.onMessage(response); 
     }; 
     atmosphereRequest.onError = function (response) { 
      console.log('atmosphereError: ' + response); 
     }; 
     atmosphereRequest.onTransportFailure = function (errorMsg, request) { 
      console.log('atmosphereTransportFailure: ' + errorMsg); 
     }; 
     atmosphereRequest.onClose = function (response) { 
      console.log('atmosphereClose: ' + response); 
     }; 

     switch (options.type) { 
     case 'public': 
      Jabber.publicSubscription = Jabber.socket.subscribe(atmosphereRequest); 
      break; 
     default: 
      return false; 
     } 
     //Jabber.publicSubscription = Jabber.socket.subscribe(atmosphereRequest); 

    }, 

    unsubscribe: function() { 
     if (Jabber.socket) 
      Jabber.socket.unsubscribe(); 
    }, 

    onMessage:function(response){....} 
} 

回答

0

我的插件作者。請更新至1.0.1版。如果更新插件後仍然有問題,請致電create a new issue。那麼我們可以解決這個問題。但是,我確實有一個問題。當你說JS加載失敗時,你的意思是JavaScript還是你自己的氛圍?沒有插件相關的CSS。

+0

嘿肯,謝謝你的回覆。 我已升級到版本1.0.1。但仍然沒有幫助。 有時它是我的應用程序JavaScript文件,有時它是大氣JavaScript文件加載失敗。 – sSaroj 2014-09-11 08:13:16

+0

您是否正在使用資源或資產管道插件來管理您的JavaScript?也許你應該嘗試更新那一個。資產管道插件至少每週更新一次。我不認爲這是一個氣氛 - 流星插件問題。我會盡力而爲,但我不是這兩個插件的專家。 – Ken 2014-09-11 17:24:32

+0

@aSaroj你是否解決了你的問題?如果是這樣,那是什麼原因造成的? – Ken 2014-09-14 12:45:26

相關問題