是否有可能使用Javascript或任何服务器端技术从移动端源代码中删除HTML的某些部分?
Is it possible to remove some part of HTML from source for mobile using Javascript or any server side technique?
是否有可能删除(不隐藏使用display:none
) HTML的某些部分从源移动使用Javascript或任何服务器端技术?
以为例,假设下面是网站
其中一个页面的<body>
内的代码例如,这是桌面浏览器的页面。
<header class="hd1">
<hgroup>
<h1>A Responsive page</h1>
</header>
<div class="main">
<section class="hs1">
<header>
<h1>This is a Page Sub Title</h1>
</header>
<p>Some content...</p>
<h2>Demonstrating EM and STRONG</h2>
<p>This text will have more importance></p>
</section><!-- .hs1 -->
</div><!-- .main -->
<aside class="sidebar">
<p>Sidebar content</p>
</aside>
<footer class="f1">
<p>copyright © year</p>
</footer>
和使用相同的页面移动设备我只想从源中删除<aside>...</aside>
。
我不能使用不同的页面,因为是基于CMS的。通过更新我想在所有设备上显示的内容。但在移动版的网站,我只是想删除(隐藏)一些东西从源。因为如果我只使用display:none
移动将加载相同数量的桌面版本的数据,这不是在移动设备上的性能。我们是否可以使用Javascript或服务器端技术删除移动端源代码的某些特定部分?
回复后编辑
正如许多用户评论的那样,JavaScript不能用于减少移动用户的有效负载。那么,服务器端的解决方案是什么呢?它可以交付相同的页面,但在交付之前从源代码中删除部分内容?
您可以在服务器上检测移动浏览器,而不呈现此标记。
当然这可以在服务器端完成。您可以通过两种方式解决这个问题(script在下面表示服务器端的脚本,而不是浏览器中的脚本):
- 脚本构建HTML,并且只根据目标平台输出。
- 脚本根据目标平台输出HTML和过滤器/后处理更改。
在HTML/XHTML领域中的一种技术是XSL转换。你可以用PHP来运行它们,在PHP扩展中提供了对XSL的支持。
当然,您也可以手动执行字符串操作或DOMDocument
和DOMXpath
。
要对标准输出进行后处理,可以通过实现输出处理程序/回调来实现。
我不确定这是否适合您,但有一个替代解决方案。这不是直截了当的,但很有趣:)。
- 默认只返回页面的"轻量级"版本。
- 检测使用JavaScript,如果我们是在低带宽连接。 如果我们不是慢速连接,那么使用AJAX加载其余部分。
Modernizr引入了一个检测慢速连接的特性测试(参见this):
var connection = navigator.connection || { type: 0 }; // polyfill
return connection.type == 3 // connection.CELL_2G
|| connection.type == 4 // connection.CELL_3G
|| /^[23]g$/.test(connection.type); // string value in new spec
问题是——当前的浏览器似乎不支持这一点。
在使用这个连接测试(也许UA嗅探作为备份)之后,您可以使用$.load()加载页面的其余部分。
使用asp.net,您可以设置div或任何HTML元素在服务器端运行,然后根据设备以编程方式隐藏或显示。您可以使用一些设备和功能缺陷框架来决定。
我相信用PHP也不会太难
- 如何删除多行HTML排列中的空白
- 删除对HTML元素的拖动
- 如何在HTML输入字段中添加不可删除的后缀
- 如何从 HTML 查询中删除项目
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- 如何使用javascript选择字符串的部分,添加html标记或删除部分
- 删除“;NaN”;来自HTML文档
- 如何使用javascript在html表中删除字符串
- 使用JavaScript在HTML中动态添加和删除必需的标记
- HTML不是'删除数据项时未更改
- 删除HTML节点而不删除其子节点
- 如何筛选要写入新文档的HTML,删除JavaScript中的某些类和/或ID
- 使用javascript或JQuery在HTML中删除当前分区的按钮
- 我该如何为video.js制作一个插件,在HTML标题中添加和删除三角形
- 从 jQuery 中的 HTML 对象中删除禁用的属性
- 删除引导开关 HTML 元素
- 是否分配给内部 HTML 删除 HTML 子树
- Javascript使用html删除旧元素
- 流星账户-登录表单更改HTML删除下拉JS
- Javascript html删除表边框