【问题标题】:Save Value State for Public Sharing (Add to URL)保存公共共享的值状态(添加到 URL)
【发布时间】:2014-09-22 20:29:10
【问题描述】:

http://liveweave.com/xfOKga

我正在研究如何保存类似于 Liveweave 的代码。

基本上,无论您编写什么代码,您都单击保存按钮,它会在 url 之后生成一个哈希值。当您转到此网址时,您可以看到保存的代码。 (我一直在努力学习这一点,只是一直找不到正确的来源。我的搜索结果最终得到的引用与我正在寻找的内容完全无关,example

过去两天我一直在研究这个问题,但没有得到任何结果。

任何人都可以帮助我找到详细解释此类保存事件的教程或文章吗?

【问题讨论】:

  • 难道你不能让你的脚本在服务器上创建一个带有哈希名称的临时目录并将文件保存为 index.php 吗?因此,当用户输入地址后跟哈希时,他们将看到他们创建的文件

标签: javascript php jquery


【解决方案1】:

要了解功能,最好尝试识别正在发生的一切。根据通常用于每个可区分组件的技术剖析此功能。剖析的概述将使了解底层技术如何协同工作变得更加容易。我怀疑你可能缺乏经验或术语,无法一眼看出像 liveweave 这样的网站是如何工作的,或者如何搜索各个部分,所以我会为你分解它。由您来研究我将命名的各个组件。了解了这一点,以下是您需要研究的关键:

请注意,如果不是 liveweave 的实际开发者,了解所有后端技术是不可能的,但智能猜测就足够了。做法都是一样的。这是一个粗略的细分。

1) 带有 HTML、CSS 和 JavaScript 的标记页面。这是应用程序面向用户的部分,可以在其中键入内容,以及用户如何与应用程序交互。

2) JavaScript 以异步方式 (AJAX) 将页面的表单提交到后端进行处理。

3) 一种用于处理传入表单的后端编程/脚本语言。在 liveweave 的情况下,表单已发布。它也使用PHP来处理表单。

4) 一个数据库表,每种语言都有一个列(liveweave 有 HTML、CSS 和 JavaScript)。该数据库将插入表单中提交并由 PHP 处理的每个 textarea 中的当前数据作为新行。每行都会生成一个新的哈希值,并将其存储在刚刚插入的数据旁边。一个流行的数据库是 MySQL。

5) 当数据库插入完成时,脚本语言再次接管,并将其响应发送回标记的页面 (1)。该页面正在等待来自后端的响应。 JavaScript 处理响应。在 liveweave 的情况下,响应是要在 URL 中使用的最新哈希。

6) URL 魔法发生在 JavaScript 中。您想查找 JavaScript 最新的 History API,其中将使用诸如 pushState 之类的方法来更新浏览器中的 URL,而无需实际刷新页面。

当导航到具有给定哈希的 URL 时,脚本语言会处理请求,获取哈希,在数据库表中搜索哈希,找到匹配的行,并使用刚刚找到的数据填充页面的文本区域。

在所有这些过程中,应该进行检查以避免重复和大量漏洞利用。这也取决于您进行研究。


需要注意的是,您的问题目前有两个 cmets。 Darren 的链接确实允许 URL 更改,但它是重定向,而不是您想要的。 ksealey的回答没有错;这是一种方法,但它不是最健壮或可扩展的,因此不是解决此问题的推荐方法。

【讨论】:

  • 谢谢美人。非常有启发性和信息丰富的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-28
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2012-11-29
  • 1970-01-01
相关资源
最近更新 更多