如果您想要真正實現這一功能,您可以讓HTML頁面請求一個.js文件,再加上他們的會話ID或其他一些指示他們的人,將.js調用操作爲PHP調用,根據會話需要動態構建JS,然後以.js文件類型的形式將其輸出回瀏覽器。
但這是很多工作。
如果你想的東西,氣味少,有PHP轉儲或者在你的文件的最後一個JSON字符串:
var cfg_string = "{\"username\":\"Norguard\", \"new_messages\":[......]}"; // client
$cfg_obj = array(); // whole lot o'PHP
$json_encoded_cfg = json_encode($cfg_obj);
echo "var cfg_string = {$json_encoded_cfg};" //server-side
,然後分析它,在客戶端增加安全性...
...或只是直接創建模板的地圖:
$cfg_string = "var dataMap = {";
foreach ($cfg_obj as $key => $val) {
// print key:val all pretty-like,
// handle commas (ie: no trailing comma at the end), indent with tabs or spaces
// if you want, count the number of items so that the object closes ({})
// without any newline operator, if there are no config settings
}
echo $cfg_string;
這兩者都是乾淨,不顯眼,並保留一切分開。 配置數據/文本可以在正確的init/loading代碼之上進行,並作爲參數傳遞給該init-logic。
我通常不會那樣做我自己的東西,但一直都在看,並且據我所知,使用服務器端語言輸出javascript或其他任何事情都沒有錯,一個是在服務器上,另一個在客戶端,他們並沒有真正的互動。 – adeneo 2012-07-25 21:08:43
不要看到有什麼問題。 – OrangeDog 2012-07-25 21:08:55
我沒有看到任何問題,但我盡我所能遠離它,以保持客戶端和服務器端之間的分離。 – 2012-07-25 21:10:26