我有变量:var balance = 50;
我想知道是否有办法保存balance
变量,以便在用户再次进入网页时保持其数量。
我该怎么办?我可以使用cookie
执行此操作,是否需要将其放入MSSQL database
?
如果我可以用cookie
设置它,我应该怎么做呢?
或者可以使用jquery/javascript
脚本来完成,这可以保存日期。
答案 0 :(得分:1)
您可以使用localStorage
var balance = 50;
localStorage.setItem("balance", balance); // Sets 50 in local storage
localStorage.getItem("balance"); // Returns 50
限制 - 如果用户访问其他浏览器/设备中的页面,则无效。
答案 1 :(得分:0)
您可以使用localStorage。
public class SampleScenario extends JUnitStories {
@Override
public Configuration configuration() {
return new MostUsefulConfiguration()
.useStoryLoader(new LoadFromClasspath(this.getClass()))
.useParameterConverters(new ParameterConverters().addConverters(new ParameterConverters.ExamplesTableConverter(new ExamplesTableFactory(new LoadFromClasspath(this.getClass())))))
.useStoryReporterBuilder(new StoryReporterBuilder().withDefaultFormats().withFormats(Format.CONSOLE, Format.HTML));
}
@Override
public InjectableStepsFactory stepsFactory() {
ArrayList<Steps> stepFileList = new ArrayList<Steps>();
stepFileList.add(new SampleSteps());
return new InstanceStepsFactory(configuration(), stepFileList);
}
@Override
protected List<String> storyPaths() {
return new StoryFinder().
findPaths(CodeLocations.codeLocationFromClass(
this.getClass()),
Arrays.asList("**/sample_story.story"),
Arrays.asList("")); }
@Override
@org.testng.annotations.Test
public void run() throws Throwable {
super.run();
}
}
但是,您必须小心,因为从安全的角度来看,不依赖于此值,因为用户可以对其进行修改。
答案 2 :(得分:0)
你所谈论的是持久性的概念。您可以通过多种方式实现这一目标,但它们都依赖于在客户端计算机上保存一小部分数据。
记住用户的最常用方法是在服务器上为他创建会话。在此会话中,您可以保存各种数据,例如余额。要将此数据从您的javascript中获取到您的会话,您可以向服务器发送包含客户端余额信息的发布请求。服务器通过客户端计算机上的会话cookie记住他正在处理哪个用户(每个会话包含一个唯一的ID)。
使用javascript,您可以非常轻松地设置Cookie:document.cookie = "balance=50"
。显然,您将用客户平衡的任何值替换'50'。下次用户访问您的网页时,您可以使用var cookie = document.cookie
再次阅读Cookie。这甚至可以在浏览器实例之间起作用。
如果您有办法识别用户(例如,他登录到您的网站,或通过会话),您可以将所需的任何数据保存到数据库中。关键是要识别您正在处理的用户。
我喜欢在创建网站时使用会话。我喜欢将大部分职责保留在我的服务器上,这样我只需要担心页面上显示的内容,而不是操纵数据等等。我建议您在需要保存时使用会话并发布用户余额。