javascript - PHP 跨页面传递数据

标签 javascript php html performance

我正在尝试找出使用 PHP 在(某种程度上)特定场景下跨两个页面(页面 A 到页面 B)传递数据的最佳方法:

A页:带有标题的图像库。要创建此页面,需要在 PHP 文件中对图像表进行数据库调用,该表保存图像 ID、图像位置和图像标题。它获取表中存在的所有图像,并通过 for 循环将它们全部回显到屏幕上。它在每个图像的 anchor 标记上创建一个指向页面 B 的 href。

页面 B: 图像的放大 View 。当用户单击页面 A 上的图像时,会将他们带到具有更大 ImageView 的新页面。

为了实现这一目标,我目前在包含页面 A 中图像的每个 anchor 上放置一个 href,并使用包含图像 ID 的参数。然后,在页面 B 上,我使用传入的 ID 进行另一个数据库调用,以再次获取图像标题、位置等。

当我已经在上一页上检索过所有需要的数据时,对我来说进行第二次数据库调用似乎是错误的。在我看来,只有三个不错的选择,但对我来说似乎都很糟糕:

  • 多个数据库查询 - 如上所述。看起来效率很低。

  • GET - 不要只在页面 A 的 href 中包含图像 ID,而是在 href 中包含所有所需的参数。请注意,我实际上不止三个参数,可能需要传递多达 15 个值。拥有如此巨大的 url 并在 url 中传递图像位置等信息似乎是错误的。

  • POST - 在页面上为每个图像设置一个表单,其方法为 POST。在表单中为需要从 Page A 传递到 Page B 的每个参数放置一个隐藏字段。同样,这对我来说似乎是一个非常糟糕的主意,因为有大量不必要的标记并且会变得非常困惑。

有人对这些方法有任何意见,或者有更好的想法吗?随着我开发得越来越多,我发现自己质疑效率,以及为什么进行如此多的数据库调用一遍又一遍地执行相同的操作对我来说没有意义。我希望能够对一张图像进行一次数据库调用,然后就不必在该 session 中再次执行此操作。

(请注意,JavaScript/jQuery 对我来说是一个选项)

谢谢!

最佳答案

网络的现实是,每次都需要发出 HTTP 请求才能从服务器获取一些数据。如果您重新加载页面,浏览器将再次发出 HTTP 请求以再次获取该数据。 HTML5 针对上述问题有很多解决方案...

  1. 网络存储 - 在客户端将值存储为键值对
  2. Web SQL 数据库 - 与 SQL 相同
  3. IndexedDB - 介于 Web 存储和 Web SQL 数据库之间

您需要从图像中创建一个 base64 字符串,并将该字符串存储在 Web Storage 或 WebSQL 数据库中。您可以在 javascript 文件中将图像代码编写为 base64,然后使用 HTML5 API 将字符串存储在数据库中。

看看这个页面 -- http://www.html5rocks.com/en/features/storage

关于javascript - PHP 跨页面传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19044522/

相关文章:

php - PHP 中的 Facebook Insights 访问

html - 更改 <select> 元素中所选选项的文本颜色

javascript - 简单的选项卡式 div

javascript - 绑定(bind) API 返回数据到下拉列表

javascript - jQuery 单击不触发按钮

javascript - 自动完成后的事件填充 Asp.net C# 或 javascript/html,

javascript - 如果图像大小 javascript 条件正常显示 div

javascript - PHP 内嵌框架 |每 X 次刷新一次并翻阅页面数组

php - 将 null 值传递给 mysql 类似查询

php - 如何使用多个表来创建用户配置文件?