代码之家  ›  专栏  ›  技术社区  ›  code4j

对ajax请求使用以前HTTP请求中的值的更好做法是什么?

  •  1
  • code4j  · 技术社区  · 10 年前

    假设我有 第1页 ,用户输入一些选择数据的选项。 数据被传递到 第2页 ,它使用ajax请求中的数据绘制图表。

    我只是想知道使用价值观的最佳实践是什么 第1页 第2页。我可以想出三种方法

    1. 将值存储在隐藏字段中,javascript使用ajax的隐藏字段值
    2. 在javascript中嵌入服务器端脚本标记以获取请求参数,例如 var data1 = <?php echo $_GET['data1']?>
    3. 在服务器端生成第2页所需的javascript。
    1 回复  |  直到 10 年前
        1
  •  1
  •   Victor Stoddard    10 年前

    最佳实践取决于您的需求。您的方法可以工作,可能最适合小而快速的表单,但诸如加载失败、超时、脚本错误和崩溃等问题可能会破坏会话。我会使用服务器端数据库。

    将Page1信息临时存储在服务器数据库中的好处是,如果用户退出会话,您仍然可以获得有用的信息(电子邮件、地址等)。如果必须退出会话,这种方法还可以让人们重新开始他们停止的地方。使用此方法,您不需要依赖易失性内存或不安全的cookie来存储信息。

    1. 使用POST在第1页提交表格。
    2. 使用唯一的会话密钥将所有表单变量存储在服务器数据库中。
    3. 页面2使用唯一的会话密钥在查询中加载存储的页面1变量。
    4. 提交包含唯一会话密钥的第2页。
    5. 合并第1页和第2页数据,将其永久插入数据库,然后删除临时第1页记录。

    如果用户没有提交第2页,请定期从数据库中删除第1页信息。