2013-04-07 70 views
0

我很想知道Meteor是否適合跟隨以及如何去編寫代碼。流星 - 實時代碼更新到網頁?

我想創建一個網頁,其中由特定「div」中的代碼可以在當前正在查看該頁面的用戶中隨時熱切地發送。 (例如,div包含一些文本,但隨後圖像會替換它。)理想情況下,交換將由網頁的管理員通過單擊按鈕手動執行,或者在服務器上觸發某些代碼或其他內容。網頁的常規觀看者無法做到這一點 - 他們只能看到頁面上的實時更改。

現實生活中的例子:

直播因特網廣播是停播,因此「格」包含「停播」的文字。當廣播直播時,代碼會發生熱切換,而網頁瀏覽者現在可以在「div」中看到html5廣播播放器。稍後,一旦廣播停播,它就會被換回。

我完全不熟悉Meteor平臺,所以我認爲自己是一個新手:)任何幫助表示讚賞。

回答

0

您可能會更好地使用反應式div來使用集合中的數據(我將使用原始HTML的示例,但是您可能更適合使用顯示的內容來實現自己的功能:即

基本上接管熱代碼互換

客戶端HTML代碼

<template name="home"> 
    <div> 
     {{{content}}} 
    </div> 
</template> 

JS的reactivity優點代碼

if(Meteor.isClient) { 
    MyCollection = new Meteor.Collection("MyCollection") 

    Template.home.content = function() { 
     if(MyCollection.findOne()) {   
      return MyCollection.findOne().content 
     } 
    } 
} 

if(Meteor.isServer) { 
    MyCollection = new Meteor.Collection("MyCollection") 

    //Set an initial content if there is nothing in the database 
    Meteor.startup(function() { 
     if(!MyCollection.findOne()) { 
      MyCollection.insert({content:"<h1>Test content</h1><p>Test Data</p>" 
     } 
    } 

    //A method to update the content when you want to 
    Meteor.methods({ 
     'updatecontent':function(newcontent) { 
      id = MyCollection.findOne()._id 
      MyCollection.update(id, {$set:{content:newcontent}}); 
      return "Done" 
     } 
} 

您可以在蒙戈集合或類似的東西(在你的Web控制檯,客戶端或服務器端JavaScript)更新您的內容:

Meteor.call("updatecontent","New content",function(err,result) { 
    if(!err) { 
     console.log(result) 
    } 
}); 

將更新代碼直播當你使用它。

對不起,它很長,但它的大部分是設置/更新html。它實際上比熱代碼交換更好,它將刷新用戶的頁面