1

我有一个要提交到 Apple AppStore 的 jQuery Mobile 网络应用程序。我需要从外部位置加载 HTML。这是我的设置:

  • 应用程序的页面(html、js、css)被打包在提交的应用程序中,因此它们将驻留在手机本地
  • 一些本地页面应该具有在服务器端 (PHP) 生成的 HTML。我想用 AJAX 获取这些并插入到 DOM 中。我不能用 jQuery load() 或 get() 做到这一点,因为这会产生跨域请求。我正在做一些成功运行的 AJAX/JSONP 调用(“Web 服务返回数据”)。

有什么阻止我制作将 HTML 代码放入 JSONP 调用响应的服务器端脚本?还是有其他方法?

4

1 回答 1

1

基本上,如果您要找到最佳方法,则需要考虑这一点。

首先,你是对的,JSONP 只是你可用的解决方案。现在一切都取决于您要加载的内容。

解决方案 1

您只能加载基本数据并使用 jQuery Mobile 创建页面内容。这是一种标准方式。通常你不会有那么多内容,jQM 可以非常快地构建它,速度足够快,甚至可以在页面准备好显示之前对其进行样式设置。

现代移动浏览器速度足够快,使用此解决方案不会有任何问题。

解决方案 2

另一种解决方案要求在服务器端完全创建页面内容,并且您将仅使用 JSONP 来加载该数据。这是一种不好的方法,当您将手机从数据处理中解救出来时,您的数据连接将会增加负担。无论您住在哪里,当前的移动数据连接都容易出现滞后和速度变化。并且您不会在页面加载后显示您的页面内容。更不用说,即使您选择这种方式,jQM 仍然需要增强新页面标记,并且该过程比动态页面内容创建要求更高。

这个解决方案还有另一个问题。您需要非常小心这种方法,因为有时您的服务器端生成的内容会破坏 JSONP 结构。

结论

简而言之,除非您有特殊原因选择解决方案 2,否则请始终坚持使用解决方案 1

于 2013-04-16T12:17:29.620 回答