2012-06-22 77 views
1

在快遞服務器中,我有這個。如何從快遞服務器動態發送新號碼到客戶端

app.dynamicHelpers({ 
    dynamicValue: function(req, res) { 
     console.log("returning a new value"); 
     return parseInt(Math.random() * 100); 

    } 

}); 

在客戶端我有這個。

setInterval(function() { 
     alert(<%= dynamicValue %>); 
     } 
     ,1000); 

所以每秒都應該顯示一個新號碼。

但是,這不是什麼情況。生成頁面加載新號碼時,客戶端看到的號碼總是相同,除非重新加載頁面。

如何改變它做它應該做的?

回答

1

您在這裏混合了服務器代碼和客戶端代碼。聲明<%= dynamicValue %>呈現值到頁面上的腳本:

setInterval(function() { 
    alert(<%= dynamicValue %>); 
} 
,1000); 

成爲

setInterval(function() { 
    alert(82.9090561); 
} 
,1000); 

此腳本後由瀏覽器解釋。瀏覽器無法訪問「服務器腳本代碼庫」。

爲了使客戶對這個工作,你需要包括在頁面上產生一個隨機數的特定的腳本:

<script type="text/javascript" src="dynamic.js" /> 

<script type="text/javascript"> 
    setInterval(function() { 
    alert(smth.dynamicValue()); 
    } 
    ,1000); 
</script> 
+0

那麼這將是包括服務器端的代碼經過渲染的文件。這似乎不是一個好辦法。另一種方式是什麼? –

相關問題