2013-02-02 64 views
1

我創建了一個JS腳本,它具有更多可選設置。從外部編輯JavaScript變量

因此,附近的某處文件的開頭我有這樣的事情:

var doThat = true; 
var playThat = false; 
... 

這個腳本會受到用戶,而不是由開發人員,以便他們可能不知道如何編輯的JavaScript文件中使用。我如何創建一種管理面板,它可以改變JavaScript文件中的一些變量。

我正在考慮創建一個接口,其中將包含單選按鈕來選擇這些值,現在的問題是:我如何實際將這些更改保存在.js文件中?我應該使用PHP直接編輯js文件還是有更好的方法?

+0

我會使用PHP方法:接收並檢查值,更新JavaScript文件並提供最新版本。 – insertusernamehere

+0

使用PHP將自定義變量存儲在數據庫中會很容易,並將該變量值傳遞給您的JS文件。 –

+0

如果我保存到數據庫比每個用戶將不得不查詢數據庫只有兩個獲得兩個布爾值...並且每個頁面上的所有腳本請求。 – Cristy

回答

0

取決於誰需要訪問這些變量。

  1. 如果這些變量在您的所有訪問者之間共享,您應該明確地將它們保存在服務器上。
  2. 如果您只需要每個用戶和每個會話需要它們,請通過PHP將它們保存在會話中或用戶使用Cookie。可以使用JS創建Cookies
  3. 如果您只需要每個用戶使用它們,但是persitant則可以使用localStorage-Object。幾乎所有的現代瀏覽器都支持這一點。
  4. 如果你有一個登錄腳本,並且你需要變量持久化並且每個用戶都應該使用php,因爲這是隨着時間的推移識別用戶的最可靠的方法。
+0

變量需要在JavaScript文件中永久更改,因爲該文件將提供給其他許多訪問者。我需要將它們保存在服務器上,但我想知道最好的方法是什麼。 – Cristy

+0

但是任何用戶都可以進行更改?如果是的話,通過PHP直接保存在JS文件中。 Perhapes創建一個只有這些變量的JS文件。 – Zim84

+0

只有管理員可以更改文件。但我說,管理員不是「開發人員」,所以他需要用戶界面來更改文件。 – Cristy

0

這使得與單選按鈕的接口。然後進行所有更改並將其保存到數據庫。將執行保存的結果的相應工作。

+0

如果我保存到數據庫比每個用戶將不得不查詢數據庫只有兩個獲得兩個布爾值... – Cristy

+0

用戶將不會查詢數據庫。它將通過您的編程來執行。用戶只能獲得預授權。給你一個例子: - 假設名爲「ripa」的用戶只能獲得視圖用戶的特權。這個編碼是由admin.when用戶「ripa」登錄到系統,然後她只能看到users.This部分是通過編程自動完成。「ripa」用戶不做任何代碼。 – ripa

+0

我知道......我只是說,每個文件請求都會查詢數據庫。這是非常低效的,可以避免。 – Cristy

0

你可以做的是有寫這些JavaScript變量,以下列方式將PHP文件:

$doThatVariable = true; // This variable could be retrieved from a database 
$playThatVariable = false; // This variable could be retrieved from a database 

// This code could be ran on relevant pages to correctly set up the JavaScript variables 
print("<script type=\"text/javascript\"> 
    var doThat = " . $doThatVariable . "; 
    var playThat = " . $playThatVariable . "; 
    </script>\n"); 

然後,您將能夠使用doThatplayThat變量在JavaScript。

希望這會有所幫助。

+0

問題是我只是簡單地將'.js'文件提供爲一個包含在頁面中的腳本,添加任何其他包含將會使我的腳本更難以使用(需要包含更多文件)。 – Cristy

+0

@Cristy這是你需要在頁面上包含的唯一額外的東西,所以它正確設置JavaScript變量。 –