【问题标题】:Should I use an XMLHttpRequest /JSON or an iFrame?我应该使用 XMLHttpRequest /JSON 还是 iFrame?
【发布时间】:2011-01-01 22:56:54
【问题描述】:

我一直在广泛使用 XMLHttpRequests 和 JSON 从 MySQL 数据库中获取数据并将记录作为数组返回。效果很好。

此外,我在三种情况下让服务器(通过 PHP)将数据格式化为网页并创建条形图(而不是将数组发送回 JavaScript 进行处理)。目前,我通过隐藏的 iframe 调用 PHP 文件,然后将 HTML 插入到 DIV 中(因为我不喜欢 iframe 的某些方面,并且更喜欢无法访问它们)。

使用 iframe 是最好的方法,还是我可以通过 XMLHttpRequest 和 JSON 完成同样的事情?我问是因为返回的数据的长度。目前,它转换为一整页数据,但我希望它是可扩展的(例如,将来可能是几页数据)。

感谢您提供任何见解。

【问题讨论】:

  • 我不明白为什么需要 IFrame 来从 PHP 中获取格式化的 Html?
  • 在从我使用了几年(在最新 JS 之前)隐藏 HTML 框架和获取数据的技术转换时尝试了 iframe。不知道 JQ-Load 并且仍然习惯于语法。此外,在使用 JQuery 时偶尔会遇到浏览器兼容性问题。也许这仍然是我的学习曲线,但例如,我根据您的回答使用了 JQuery 加载。它在 Chrome 和 Safari 中运行良好,但在 Firefox 中产生了错误消息。这就是为什么我花了这么长时间才从旧的方式转变。大多数旧方法仍然适用于任何地方。

标签: php html xmlhttprequest json


【解决方案1】:

如果您想从其他页面获取格式化的 html 并将其插入当前页面 dom,根据我的说法,最简单的方法是使用 jQuery load methods。它向给定的 url 发出 ajax 请求,获取 html 并将其附加到指定的页面元素。

通常这两种方法 - 传递 JSON 数据和传递 Formatted html 对不同的事情都有好处。我个人更喜欢传递 JSON 数据并使用客户端脚本和 html 对其进行格式化。这样就更容易复用了。

【讨论】:

  • 正确,jquery 也可以,但问题是不能减少数据长度。只有在PHP响应部分内容的情况下才能减少数据,即无论如何都需要在PHP中进行一些代码更改。
  • 如果数据是相当静态的,您始终可以 Gzip 和\或缓存数据,所以我认为长度不会是太大的问题。
  • 谢谢 Branislav(还有 Joel 的尺码提醒)。我会试试 JQuery。您关于更喜欢传递 JSON 数据以进行客户端格式化的评论与我一直想知道(避免)的事情一致:用 JavaScript 重写我的 PHP 函数。开始的代码以 JavaScript 开始,然后我切换到 PHP,然后使它更复杂(复杂)。我切换是因为客户端设备很可能是智能手机,我不想依赖它的处理能力。但是,在我的代码中使用单一方法 (JSON) 会很好。
猜你喜欢
  • 2016-09-26
  • 2012-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-05
  • 2018-09-05
  • 2010-11-03
相关资源
最近更新 更多