2012-06-28 43 views
0

我目前正在看jQuery手机及其使用XmlHttpRequest加载网页的系统。因此,例如,可以在两个页面之间自动执行转换动画。使用jQuery移动装载页面时需要完整的html页面吗?

但是,有些事情我不清楚。如果我理解正确,那么jQuery移动网站的每个新页面都会注入到初始网页的DOM中。 jQuery mobile的文档甚至告诉我们,由于这种机制,新网页的<title>标签没有被考虑在内。因此,如果我的初始网页A.html加载一个B.html页面,我会倾向于认为网页B.html不需要有一个完整的HTML语法与<html>,<head><head><body>标签。

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

我对不对?
使用jQuery移动加载HTML页面时,需要完整的HTML页面吗?
有一个错误的/截断的HTML语法的网页有什么优点和缺点(appart,这个网页不应该直接访问,但通过主页)?

回答

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结构,每个文件不值得可能破坏用户的常见事件,如刷新页面(这在许多设备上时,会自动进行体验用户打开浏览器到已打开的页面)。

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

+0

嘿,我刚刚更新我的答案,包括一些关于搜索引擎优化的东西作为事后的想法,在我看到你的答案之前。很高兴看到这些信息出现在同一页面上,寻找其他人的信息,所以+1我的朋友。 – BumbleB2na

+0

你对“刷新”问题完全正确。我在考虑使用WebView制作移动应用程序时(在Android上),所以我在经典网页的情况下忘了这个问题。此外,关于SEO的好点。 –

2

当你使用jQuery mobile时,你应该使用一个完整的页面,但它当然可能会变得很长,然后将所有东西加载到DOM中需要很长时间。很多开发人员不喜欢这样。

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

下面是一个类似q &一个帮助支持我的观点:jQuery mobile multiple HTML files

一个警告:如果这是一个网站,将在网上,如果你去与具有多个的方法(和零碎)页面,你可能想停下来思考搜索引擎优化..你可能会想要一个机器人文件,以防止谷歌机器人抓取额外的网页。如果你对整个网站的搜索引擎优化服务感兴趣,那么你应该看看谷歌在Responsive web design for mobile上发布的这篇文章。它可以从一开始就改变你的整个视角。

我的意见是,你应该让你的jQuery Mobile站点都在一个页面上。您可以随时使用JavaScript/jQuery在需要时添加额外的标记。这是我为jQuery Mobile网站所采用的方法。另一方面,如果你将这个包装在PhoneGap中作为原生移动应用程序进行部署,那么我会使用分段页面,因为a)SEO不适用于它,b)我希望DOM加载速度尽快尽可能使它看起来像一个“真正的本地应用程序”加载。我相信分散的页面可以帮助它加载速度更快,并且我知道在需要时使用JavaScript/jQuery注入代码会加快加载速度。

+0

开始如何添加''和''标签使页面“很长”?它增加了一个微不足道的开销,不会使加载时间延长任何可感知的数量。 – Jasper

+0

我的意思是说''标签内的内容可能会变得非常长。如果没有太多内容,每个在线教程都使用单个页面,但在真实世界的项目中,单个页面必须全部加载到DOM并且可能非常大。你需要小心的一件事是在分散的页面上构建搜索引擎优化......所以我将根据这个想法更新我的答案。 – BumbleB2na

+0

+1因为PhoneGap的情况。实际上,我的应用程序正是为了测试PhoneGap。但我想知道更多使用jQuery Mobile的通用场景。 –

0

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

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

+0

您能否提供一个“我认为......”声明的来源? – Jasper