将外部HTML加载到混合Web应用程序中

时间:2013-04-16 11:58:48

标签: jquery ajax json jquery-mobile jsonp

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

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

有没有什么能阻止我制作服务器端脚本,将HTML代码放入JSONP调用的响应中?或者还有另一种方式吗?

1 个答案:

答案 0 :(得分:1)

如果你想找到最好的方法,基本上你需要考虑这个问题。

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

解决方案1 ​​

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

现代移动浏览器足够快,您不会遇到任何问题。

解决方案2

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

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

结论

除非您有特别的理由选择解决方案2 ,否则要简短地讲故事,请始终坚持使用解决方案1 ​​