【发布时间】:2017-02-06 02:58:36
【问题描述】:
我正在构建一个由多个部分组成的网站。我没有将我的内容分成多个 HTML 页面,而是计划对每个部分使用 URL 片段(主要是出于性能原因;我不希望为每个页面重新加载整页)。想象一下这样的事情:
<section id="portfolio">
<a href="#project1">Link to Project 1</a>
<a href="#project2">Link to Project 2</a>
....
<a href="#project20">Link to Project 20</a>
</section>
<section id="project1>
Content for Project 1 <img src="project1.jpg" />
</section>
<section id="project2>
Content for Project 2 <img src="project2.jpg" />
</section>
...
这带来了一些明显的困难
- 浏览器会加载整个网站的 HTML,这会减慢移动设备上的呈现速度
- 浏览器将请求每个部分中的每个图像;否则我将不得不添加 JS,以便在看到该部分时延迟加载图像
为了至少部分解决这个问题,我计划将这些部分拆分为 HTML 部分。然后使用 AJAX 加载部分。然而,这意味着我现在依靠 JS 来为网站提供基本功能。
我的问题是:
- 支持 noscript 和移动场景是否必然总是相互冲突的目标?
- 我应该只接受每个部分的整页重新加载并制作单独的 HTML 文件吗?
- 如果我采用现有方法,是否有办法优雅地处理 noscript 场景和加载性能?
- 除非禁用 JS,否则
<noscript>元素中的资源是否会被忽略?
【问题讨论】:
-
<noscript></noscript>? -
对Q3的回答:不能。在noscript场景下,只能在开头加载所有图片。
-
只是一个小问题:你为什么要非常注意 noscript 场景?这是2017年!谁会打扰阻止javascript?
-
@SuperCoolHandsomeGelBoy 1) 注重隐私/安全的人 2) 有屏幕阅读器的人 3) 搜索引擎(虽然我听说 Google 现在执行 JS)。加上能够编写一个简单的网站而无需依赖 JS 来实现关键功能的职业自豪感 :-)
-
<noscript>块内的 AFAIK 资源不会被下载,除非该块被渲染,即当 JS 被禁用时。 Play around with this fiddle 和 devtools 网络选项卡,尝试删除noscript。
标签: html mobile-website noscript