使用jQuery mobile加载页面时是否需要完整的html页面?

时间:2012-06-28 21:05:49

标签: html mobile jquery-mobile

我目前正在研究jQuery mobile及其使用XmlHttpRequest加载网页的系统。因此,例如,可以在两个页面之间自动执行过渡动画。

然而,我不清楚某些事情。如果我理解正确的话,jQuery移动网站的每个新页面都会被注入初始网页的DOM中。 jQuery mobile的文档甚至告诉我,由于这种机制,新网页的<title>标记不会被考虑在内。

所以,在某种程度上,如果我的初始网页A.html加载页面B.html,我倾向于认为网页B.html不需要具有<html>的完整HTML语法,<head><body>标记。

我的页面B.html可以直接以<div>元素开头。

我是对的吗?用jQuery mobile加载HTML页面时是否需要一个完整的html页面?
有一个错误/截断HTML语法的网页有什么优缺点(appart that不应该直接访问此页面,而是通过主页面访问?

3 个答案:

答案 0 :(得分:2)

使用jQuery mobile时,你应该“使用”整页,但它当然可以使用很长时间,然后将所有内容加载到DOM中需要很长时间。很多开发人员都不喜欢这个。

回答你的问题:只要你有一个有效的html页面(你的jquery移动应用程序的主页面),它就可以加载一个“错误/ trumcated”的html文件就好了。它也可以加载一个正确形成的html文件。你可以选择看起来更干净的东西。

这是一个类似的q&amp; a,它有助于支持我的观点:jQuery mobile multiple HTML files

警告:如果这是针对可在线使用的网站,并且如果您采用具有多个(和碎片)页面的方法,您可能想要停下来思考SEO ..您可能需要一个漫游器文件来阻止Google机器人抓取其他页面。如果您在整个网站上都关注SEO,那么您应该查看Google在Responsive web design for mobile上撰写的这篇文章。它可以从一开始就改变你的整体观点。

我的意见是你应该在一个页面上拥有你的jQuery Mobile网站。您可以随时使用JavaScript / jQuery根据需要注入额外的标记。这是我为jQuery Mobile网站采取的方法。另一方面,如果你将它包装在PhoneGap中以部署为本机移动应用程序,那么我会使用碎片页面,因为,a)SEO不适用于它,和b)我希望DOM加载速度快尽可能使它看起来像一个“真正的本机应用程序”加载。我相信碎片页面可以帮助它加载更快,我知道在你需要的时候用JavaScript / jQuery注入代码会使它加载更快。

答案 1 :(得分:1)

但是当用户在A.html开始,然后转到B.html,然后刷新页面时会发生什么? jQuery Mobile使用pushState插件更新URL,就像用户正常访问B.html页面一样。这意味着,如果用户在B.html上刷新,则如果不是完整文档,则不会有适当的包含来创建您的移动网站。

我的建议是在每个文档中包含jQuery Mobile JS / CSS文件,在每个文档中包含jQuery Core JS文件,并包含外部自定义JS / CSS文件,其中包含您站点所需的所有JS和CSS 。这样,无论用户访问的站点中的哪个页面,它都将包含所有必要的信息。这不会给您的网站带来大量的膨胀,每页只包含几行内容。大多数时候,当jQuery Mobile通过AJAX将页面拉入DOM时,所有这些包含都会被忽略(jQuery Mobile只抓取第一个data-role="page"元素及其内容,忽略文档中的其他所有内容。

长话短说:

为每个文档省略正确的HTML结构的性能优势不值得破坏用户对常见事件的体验,例如刷新页面(当用户将浏览器打开到已打开的页面时,会在许多设备上自动发生)

不使用有效的HTML结构的主要 con 是您正在损害您的SEO。文档<head>中的元标记对于页面中的内容应该仍然是唯一的,这样搜索引擎抓取工具就可以正确地为您的网站编制索引。

答案 2 :(得分:0)

如果您尝试加载外部html文件,最好有一个完整形成的html页面。那个html页面也应该有<div data-role="page">标签。我认为jquery mobile会查找该标签并根据它加载新页面。

您还可以将所有页面的html包含在一个页面中,并标注为“A.html”。每个页面的HTML应以<div data-role="page">

开头