Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何保存javascript变量_Javascript_Php_Html_Variables_Save - Fatal编程技术网

如何保存javascript变量

如何保存javascript变量,javascript,php,html,variables,save,Javascript,Php,Html,Variables,Save,我有一个javascript变量,它由一个.php脚本中的javascript函数递增,唯一的问题是调用该函数时页面会重新加载,所以我需要某种方法来保存变量,使其在页面重新加载时或在您输入时保持不变。 我知道你可以做一个本地保存,但我不确定当你离开网站时它是否保存了变量 我的变量在html脚本中 <script type="text/javascript"> var varNumber= 1; doc

我有一个javascript变量,它由一个.php脚本中的javascript函数递增,唯一的问题是调用该函数时页面会重新加载,所以我需要某种方法来保存变量,使其在页面重新加载时或在您输入时保持不变。 我知道你可以做一个本地保存,但我不确定当你离开网站时它是否保存了变量

我的变量在html脚本中

<script type="text/javascript"> 

                    var varNumber= 1;
                    document.getElementById("varNumber").innerHTML = varNumber;
                    document.getElementByID("varNumber").value = varNumber;


                    function addToVariable() {
                        varNumber= varNumber+ 1 ;
                        document.getElementById("varNumber").innerHTML = varNumber;
                    }

                </script>

您可以在客户端使用localStorage

<script>
  localStorage.setItem("mykey",99); // set a variable

  var varNumber = localStorage.getItem("mykey"); // retrieve variable
</script>

您可以在客户端使用localStorage

<script>
  localStorage.setItem("mykey",99); // set a variable

  var varNumber = localStorage.getItem("mykey"); // retrieve variable
</script>

下面是三种客户端方法,用于在页面刷新时保存JavaScript变量,并说明它们可以将数据保存多长时间

使用本地存储保存JavaScript变量 在现代浏览器中,使用本地存储保存JS变量既简单又方便

var get = function (key) {
  return window.localStorage ? window.localStorage[key] : null;
}

var put = function (key, value) {
  if (window.localStorage) {
    window.localStorage[key] = value;
  }
}
要保存和读取对象而不是简单变量,请执行以下操作:

localStorage.yourObject = JSON.stringify(obj);

obj = JSON.parse(localStorage.yourObject || "{}");
持久性:

如果用户如此配置,则用户代理可以自动删除 一段时间后存储的数据

例如,可以将用户代理配置为处理第三方问题 本地存储区域作为仅会话存储,删除数据一次 用户已关闭所有可以访问它的浏览上下文

这可能会限制站点跟踪用户的能力,例如 将只能跨多个会话跟踪用户 当他通过网站本身进行认证时,例如通过购买 或登录到服务

然而,这也降低了API作为长期应用程序的实用性 存储机制。如果 用户不完全理解数据过期的含义

参考资料:

使用cookies保存JavaScript变量 使用cookies保存变量:

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}
持久性:

会话cookies-这些是临时的,在您关闭时会被删除 在会话结束时打开浏览器

持久cookies-这些cookies保留在客户端硬盘上,直到它们 被删除或过期

这最终取决于用户。他们可能是偏执狂 Cookie和本地存储,并将它们设置为仅会话或无会话 全部

参考:

使用window.name保存JavaScript变量 您还可以使用窗口的名称window.name来存储信息

持久性:

这仅在使用相同的窗口/选项卡时有效


REF:

以下是三种客户端方法,用于在页面刷新期间保存JavaScript变量,并说明它们可以将数据保存多长时间

使用本地存储保存JavaScript变量 在现代浏览器中,使用本地存储保存JS变量既简单又方便

var get = function (key) {
  return window.localStorage ? window.localStorage[key] : null;
}

var put = function (key, value) {
  if (window.localStorage) {
    window.localStorage[key] = value;
  }
}
要保存和读取对象而不是简单变量,请执行以下操作:

localStorage.yourObject = JSON.stringify(obj);

obj = JSON.parse(localStorage.yourObject || "{}");
持久性:

如果用户如此配置,则用户代理可以自动删除 一段时间后存储的数据

例如,可以将用户代理配置为处理第三方问题 本地存储区域作为仅会话存储,删除数据一次 用户已关闭所有可以访问它的浏览上下文

这可能会限制站点跟踪用户的能力,例如 将只能跨多个会话跟踪用户 当他通过网站本身进行认证时,例如通过购买 或登录到服务

然而,这也降低了API作为长期应用程序的实用性 存储机制。如果 用户不完全理解数据过期的含义

参考资料:

使用cookies保存JavaScript变量 使用cookies保存变量:

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}
持久性:

会话cookies-这些是临时的,在您关闭时会被删除 在会话结束时打开浏览器

持久cookies-这些cookies保留在客户端硬盘上,直到它们 被删除或过期

这最终取决于用户。他们可能是偏执狂 Cookie和本地存储,并将它们设置为仅会话或无会话 全部

参考:

使用window.name保存JavaScript变量 您还可以使用窗口的名称window.name来存储信息

持久性:

这仅在使用相同的窗口/选项卡时有效


REF:

您可以使用AJAX执行PHP,如:

<?php
session_start(); $r = array();
if(isset($_POST['holdNumber'])){ // assumes {holdNumber:numberHere} sent through AJAX
  if(preg_match('/^\d+$/', $_POST['holdNumber']){
    $r['heldNumber'] = $_SESSION['holdNumber'] = $_POST['holdNumber'];
  }
  else{
    // holdNumber hack
  }
}
elseif(isset($_POST['load'])){
  if(+$_POST['load'] === 1){ // assumes sending {load:1} in AJAX
    if(isset($_SESSION['holdNumber']){
      $r['heldNumber'] = $_SESSION['holdNumber'];
    }
    else{
      $r['heldNumber'] = $_SESSION['holdNumber'] = 0;
    }
  }
  else{
    // load hack
  }
}
echo json_encode($r);
?>

您可以使用AJAX执行PHP,如:

<?php
session_start(); $r = array();
if(isset($_POST['holdNumber'])){ // assumes {holdNumber:numberHere} sent through AJAX
  if(preg_match('/^\d+$/', $_POST['holdNumber']){
    $r['heldNumber'] = $_SESSION['holdNumber'] = $_POST['holdNumber'];
  }
  else{
    // holdNumber hack
  }
}
elseif(isset($_POST['load'])){
  if(+$_POST['load'] === 1){ // assumes sending {load:1} in AJAX
    if(isset($_SESSION['holdNumber']){
      $r['heldNumber'] = $_SESSION['holdNumber'];
    }
    else{
      $r['heldNumber'] = $_SESSION['holdNumber'] = 0;
    }
  }
  else{
    // load hack
  }
}
echo json_encode($r);
?>

服务器是全局的还是人均全局的?您查看过cookies吗?然后您可以使用缓存:您应该使用PHP的$\u会话。JavaScript将在每次加载页面时再次加载所有代码。JavaScript在较新的浏览器中支持本地存储和会话存储。根据页面的重新加载方式,您也可以使用location.hash或location.search从URL获取值。$\u会话不适合,因为在每个请求中创建它自己的会话…它是se的全局会话吗
人均服务器或全局?您查看过cookies吗?然后您可以使用缓存:您应该在PHP中使用$\会话。JavaScript将在每次加载页面时再次加载所有代码。JavaScript在较新的浏览器中支持本地存储和会话存储。根据页面的重新加载方式,您还可以使用location.hash或location.search从URL获取值,另外。$\会话不合适,因为在每个请求中都创建自己的会话…一些参考:一些参考:当网站重新加载时,这会保存变量吗?当网站重新加载时,这会保存变量吗?如果我选择使用本地存储,即使网站重新加载或重新进入?通常,但最终取决于用户。他们可能对Cookie和本地存储心存疑虑,并将其设置为仅会话。@DevLiv您好,这个答案能帮助您解决问题吗?您能够在解决方案中实现什么?是的,它帮助我找到了我的功能所需的内容,我最终使用了服务器端存储,但这对我有所帮助。非常感谢。如果我选择使用本地存储,即使重新加载或重新输入网站,它会保存变量并保留吗?通常,但最终取决于用户。他们可能对Cookie和本地存储心存疑虑,并将其设置为仅会话。@DevLiv您好,这个答案能帮助您解决问题吗?您能够在解决方案中实现什么?是的,它帮助我找到了我的功能所需的内容,我最终使用了服务器端存储,但这对我有所帮助。非常感谢你。