我有我的用戶的網站一行代碼,它要求一個腳本,從我的服務器:「Modularising」 JavaScript文件
<script src="myserver.com/getjs?user=1"></script>
和PHP提供了JS,在代碼中插入用戶的ID:
(function(){
var userid = 1; //written out from $_GET['user']
...js code...
})();
現在我想輸出不同的js取決於用戶的id是什麼。我不想有很多不同的js文件,我想要一種方式來「模塊化」根據用戶設置發送的代碼,因爲用戶不需要更改其網站上的代碼。我可以看到這樣做的唯一的辦法就是輸出js文件是這樣的:
...first PHP will get some user settings from the db based on their userid...
...then the js is output...
(function(){
var userid = 1; //written out from $_GET['user']
<?php if($userOption1){ ?>
function _option1(userid){ //func required if option1 true
...func1 code...
}
_option1(userid); //ruin it in js
<?php } ?>
<?php if($userOption2){ ?>
function _option2(userid){ //func required if option2 true
...func2 code...
}
_option2(userid); //run it in js
<?php } ?>
...and so on...
})();
但我敢肯定,必須有管理這個更有效的方式。這樣做的原因部分是爲了讓每個用戶的代碼儘可能小,但主要是因爲我正在構建一些用戶不想要的功能 - 它需要對每個人都是動態的。
感謝任何人誰可以幫助!
首先,你爲什麼不在cookie中設置用戶ID?畢竟PHP可以寫入它,並且js可以讀取它。使用相同的名稱輸出不同的內容會導致緩存和代理的問題。如果你要防止緩存(註銷工作),保留文件縮小几乎不會有幫助 - 如果一個大文件只能請求一次並通過用戶瀏覽器緩存,那麼數據傳輸可以少得多。 –
@Mołot謝謝,但一切順利的方式請求和緩存js,我只是尋找一個更有效的解決方案,可以動態輸出不同的js爲每個用戶根據請求的url變量。 – tripRev