2013-02-02 36 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变量。 –