第 5 部分中,我们研究了 Chrome 的 V8 引擎如何执行代码。我们使用 Chrome 的调试工具来跟踪 JavaScript 的执行顺序。调试工具工具是推理异步代码的非常强大的方法,可以提高您的工作效率。在这一部分中,我们将利用我们的知识来解决现实世界的异步问题,例如从服务器中提取数据。
从服务器拉取数据
让我们从使用异步 JavaScript 解决现实世界的问题开始。
许多开发人员面临的一个问题是从服务器中提取数据。让我们用一个极端的例子来说明使用同步 JavaScript 获取数据的一个主要问题。
想象一下,您正在也门国内使用您的全能歌舞网络应用程序。根据我肤浅的批判性分析,也门的平均网速不到 1mbps。现在,进一步假设您的网络应用程序需要下载大约 30MB 的相对较小的数据集。将这些数字插入在线计算器,下载相对较小的数据集需要 240 秒。图1。
这是同步 JavaScript 的致命弱点。用户别无选择,只能等待 240 秒再做其他事情。该网络应用程序在下载过程中完全阻塞且非交互。这是一个糟糕的用户体验的常见例子,应该不惜一切代价避免!
240 秒似乎是一个极端的例子,但许多可用性研究表明,没有互动体验的仅仅几秒钟就会导致用户去其他地方。请记住,每一秒都对您的应用程序的成功至关重要。时间不仅仅关乎性能——时间对于出色的用户体验也至关重要。
请记住 - 让您的应用程序具有响应性。不要让您的用户感到沮丧,也不要让他们等待!
想想这个。您有多少次对那些在页面呈现时冻结的应用程序感到沮丧?考虑到大量的阻止网站继续以糟糕的用户体验困扰互联网,我想这种体验此时已经深深地根植于你的生活中。
不幸的是,这些阻止站点是常态而不是例外。为了减少产生阻塞站点的可能性,我们可以使用 Fetch web-api。
使用 Fetch API 异步获取数据
fetch api 从网络上获取资源。 当诸如 Web 浏览器之类的 HTTP 客户端发出 HTTP 请求时,该请求的目标称为“资源”。
我们使用 URI 或统一资源标识符获取或修改 Web 上的资源。 此 URI 通常会在您的 Web 浏览器中显示为地址,用于标识逻辑或物理资源。
让我们看看 fetch 的实际应用。 我们将使用 fetch 从设置为响应 HTTP 请求的远程服务器获取帖子。
打开 Chrome 并在地址栏中输入 about:blank 以获取最小的 html 页面。 图 2. 将图 2 中的代码复制到开发人员工具的控制台中,然后按 Enter。
然后 fetch() 将向 http://jsonplaceholder.typicode.com/posts 发出请求,该请求返回一个承诺。 如果请求完成,则使用 Response 对象履行承诺。 如果请求失败,则 Promise 被拒绝。 在这种情况下,我们可以看到 promise 已经实现并返回了一个表示唯一帖子的对象数组。 图 3。
如果您从开发人员工具中打开网络选项卡,您可以收集有关请求和响应对象的丰富信息。 图 4。
恭喜。 您已经对 Internet 上的资源发出了第一个异步请求。
些一行代码大多数会是CSS规则中的一个声明。在某些情况下,选择器可能不只是一个简单的元素;在其他情况下,我会添加额外的声明作为建议以获得更好的体验,因此使它们不再严格意义上是一行代码——对于这些情况我提前道歉。
这些一行代码中的一些更多是个人选择,并不适用于所有网站(并非每个人都使用表格或表单)。我会简要描述每一个,它们的作用(附带示例图片),以及为什么我喜欢使用它们。请注意,示例图片可能会在前面例子的基础上进行构建。
以下是这些一行代码的作用概述:
限制视口内的内容宽度
body {
max-width: clamp(320px, 90%, 1000px);
/* 额外建议 */
margin: auto;
}
添加这个一行代码将使内容大小占据视口的90%,将其宽度限制在320到1000像素之间(可以随意更新最小和最大值)。
这个改变将自动使您的内容看起来更好看。它将不再是一个庞大的文本块,而是看起来更有结构和组织。如果你还给body添加margin: auto;,内容将在页面上居中。两行代码让内容看起来好多了。
并排比较变化。左侧(之前):一大块文本。右侧(之后):两侧有内边距的文本。仍然很大但有更多空间。
对齐和包含的文本比一大堆文本看起来更好
增加文本大小
body {
font-size: 1.25rem;
}
让我们面对现实:浏览器默认的16px字体大小是小的。虽然这可能是基于我变老的个人观点
一个快速的解决方案是增加body中的字体大小。由于级联和浏览器使用的em单位,网页上的所有文本将自动增大。
并排比较。左侧(之前):带有文本的列。右侧(之后):带有更大字体的文本列。
更大的文本大小使阅读更容易。
增加行间距
body {
line-height: 1.5;
}
另一个提高可读性和打破可怕的文本墙的偏好是增加段落和内容中行与行之间的间距。我们可以轻松地用line-height属性做到这一点。
并排比较。左侧(之前):带有文本的列。右侧(之后):带有文本的列(间距更大)。
行间的空间打破了文本墙和白色的河流。
这个选择(与前两个一起)将显著增加我们页面的垂直大小,但我向你保证文本将更易读,对所有用户更友好。
限制图片大小
img {
max-width: 100%;
}
图片的大小应该大致与它们将占据的空间相当,但有时我们会遇到真正长的图片,导致内容移位并创建水平滚动。
避免这种情况的一种方法是设置最大宽度为100%。虽然这不是一个万无一失的解决方案(边距和内边距可能影响宽度),但在大多数情况下它都能工作。
并排比较。左侧(之前):图片溢出内容大小导致出现滚动条。右侧(之后):图片调整到内容大小。
防止水平滚动并使图片与文本更好地流动
限制内容中文本的宽度
p {
max-width: 65ch;
}
避免可怕的文本墙和空白河流的另一种策略是应用这种样式,即使与body中的最大宽度结合使用。这可能看起来不必要,有时甚至很奇怪,因为段落会比其他元素更窄。但我喜欢这种对比和较短的行。
60ch或65ch的值在过去对我很有效,但你可以使用不同的值并调整最大宽度以满足你的需求。在你的网页上玩耍和探索它的外观。
并排比较。左侧(之前):文本占据整个宽度。右侧(之后):文本占据大部分宽度。
将较大的文本块分成较小的块以提高可读性
以更平衡的方式包裹标题
h1, h2, h3, h4, h5, h6 {
text-wrap: balance;
}
标题是网页结构的重要部分,但由于它们的大小较大和内容较短,可能看起来很奇怪。特别是当它们占据多于一行时。一个有帮助的解决方案是使用text-wrap来平衡标题。
虽然balance似乎是text-wrap最流行的值,但它不是唯一的。我们也可以使用pretty,如果需要的话,它会将额外的一个词移到最后一行,而不是平衡所有内容。不幸的是,pretty目前还没有广泛的支持。
并排比较。左侧(之前):一个标题占据两行,第二行只有1个词。右侧(之后):标题占据宽度相似的两行。
平衡的换行可以改善可见性和可读性
表单控件颜色与页面样式匹配
body {
accent-color: #080; /* 使用你喜欢的颜色 */
}
另一个小变化,虽然没有显著影响,但能让东西看起来更好。直到最近,我们还不能用CSS样式化原生表单控件,只能使用浏览器显示。但情况已经改变。
开发一个完整的组件可能很麻烦,但使用这个一行代码可以设置一个更接近网站其他部分和设计系统的颜色,这是可能的,而且很简单。
并排比较。左侧(之前):表单控件是默认的蓝色。右侧(之后):表单控件颜色与标题和链接颜色匹配(绿色)。
正是这些小细节(和颜色)让页面融为一体
易于跟随的表格行
:is(tbody, table) > tr:nth-child(odd) {
background: #0001; /* 或者对于深色主题使用 #fff1 */
}
我们必须使用表格来显示数据,而不是用于布局。但默认情况下表格很丑,我们不希望数据看起来很丑。特别是,有一件事有助于组织数据并使其更易读,那就是有一个带有交替深浅行的斑马表格。
上面显示的一行代码使得实现这种样式变得容易。它可以简化为只有tr而不考虑tbody或table父元素,但这也会应用到表格头部,这可能不是我们想要的。这是一个品味问题。
并排比较。左侧(之前):所有表格行都是白色的。右侧(之后):偶数表格行略微深色。
更容易水平跟随数据(按行)
表格单元格和标题的间距
td, th {
padding: 0.5em; /* 或 0.5em 1em... 或任何不为0的值 */
}
让表格更易访问和更易读的最后一个变化是通过给表格单元格和标题添加内边距来稍微间隔内容。默认情况下,大多数浏览器没有任何内边距,不同单元格的文本相互接触,使得区分一个单元格开始和另一个结束变得混乱。
我们可以更改内边距值以调整到我们喜欢的大小。然而,避免过度以防止不必要的滚动或太多空白空间。
并排比较。左侧(之前):表格单元格文本内容完全在一起。右侧(之后):表格单元格内容明显与其他表格单元格分开。
更容易水平和垂直跟踪数据
减少动画和移动
@media (prefers-reduced-motion) {
*, *::before, *::after {
animation-duration: 0s !important;
/* 额外建议 */
transition: none !important;
scroll-behavior: auto !important;
}
}
好吧,好吧。这段代码远不止一行。它有一个一行版本(通过将动画持续时间设置为零秒来移除动画),但网页上还有其他使元素移动的东西。
通过在prefers-reduced-motion媒体查询中设置这些声明,我们将尊重用户选择减少移动的意愿。这种方法有些激进,因为它移除了所有移动,这可能不一定是用户的意图 - 它是"减少移动"而不是"无移动"。如果适当的话,我们仍然可以根据具体情况保留移动。
并排比较。左侧(之前):一个图像在网页上移动。右侧(之后):图像是静态的。
没有动画?没问题!
文接增强现实AR文化遗产保护经典案例解析(简版·上)
文物可视化复原、展示
在文物当中存在大量的易损文物,这些文物都容易出现脆化、脱色、剥落等现象,即便人工修复后仍然很难长期用于研究与展示。利用AR的三维表现力,可以预先展现文物修复后的影像,从而检验修复技术、手段的可行性;进一步可以和视图计算技术相结合,考察修复过程中的各项环节和修复后的耐久性,或者辅助文物修复过程;利用AR可以完好地展示文物,从而使文物实体保存在更加严密的环境中,有利于文物寿命的延长。
“洛阳天堂遗址” 保护展示工程
作为一代女皇武则天的礼佛堂 ,“洛阳天堂遗址” 位于河南省洛阳市隋唐洛阳城国家遗址公园内。为了重现唐朝建筑技术的杰出成就,重建在遗址之上的新“天堂” 于 2014 年 4 月对游人开放。新“天堂” 并非历史上天堂的原样复制,而是一座集保护、 展示功能于一体的高塔建筑,用以展示和保护“天堂” 遗址。它很好地利用了基于投影的空间增强现实这一先进的数字化保护技术。由于基于投影的空间增强现实技术对定位的要求不高,而且也不需要对位置和方向进行实时跟踪,游客可以根据自己所在位置的不同观察到不一样的三维虚拟影像。
秦兵马俑的数字化和虚拟修复
看个体,每尊兵马俑都富有极强的艺术感染力;看整体,8000余件陶俑构成了庞大的军阵体系,再现2000余年前秦军“奋击百万”气吞山河的气势。但是,兵马俑出土时,绝大部分就已支离破碎,我们所看到的大都是文物修复师的劳动成果。
由北京师范大学信息科学与技术学院院长周明全教授主持的“文化遗产数字化与保护新技术的研究及应用”项目,针对中华文化遗产的保护需求,采用虚拟现实、图形图像处理等信息科学新技术,完成了多项文物数字化、文物虚拟复原修复、数字博物馆、数字考古方面的科研项目,解决了文物的三维数字化真彩色信息的采集、基于网络的虚拟现实浏览技术等关键技术问题,形成了系列的文化遗产数字化处理与保护的方法与科技成果,为文物保护、考古、古人类学的研究开辟了新的途径。
将AR、VR技术和文化遗产保护相结合,可以实现高精度、大规模、交互性强、受众广的文物和文化遗产修复、展示方式。
庞贝古城的文化遗产数字化
瑞士日内瓦大学研究人员研宄利用数字动画、虚拟现实等数字技术,对代表欧洲文化特色的庞贝古城的有关活态传统文化、文化事项进行数字化的视觉呈现,主要包括可视化、情境化的三维角色、三维动画、虚拟古建筑场景、关键活态事件与体现当时特色文化元素的服饰、发型等虚拟重建与再现,并最终利用增强现实技术将这些虚拟的数字文化内容信息叠加在现实的庞贝古城文化遗迹环境中,使用户能在真实的文化遗迹现场环境中体验到遗迹背后的历史情境。
非物质文化遗产保护
基于增强现实技术的宣纸文化传播新模式
宣纸技艺文化的媒体传播主要模式远远满足不了新媒介环境下受众的需求和宣纸技艺文化传承。因此,将宣纸这一活态技艺文化与科技相融合是当前宣纸保护与传承发展的重要建设路径之一,如:建立传统手工纸发展史的数字资源库等。基于增强现实技术的宣纸技艺文化系统可以不受时间空间限制, 实现虚实结合、 三维沉浸和实时互动传播,能更高效地让受众感受、了解宣纸技艺文化,从而以全新的方式或路径促进宣纸技艺以及更广泛的非物质文化遗产传承与传播。
佛山国家级非遗项目AR明信片
该明信片以14张为一套,涵盖佛山现有的国家级非物质文化遗产项目,由佛山市非物质文化遗产保护中心联合佛山邮政发行,包含石湾陶塑技艺、粤剧、剪纸、木板年画等。
农业银行2016“金猴献瑞”金钞、银钞
2016丙申猴年即将来临,2015年12月10日,中国农业银行于2016春天行动启动仪式上发布了“金猴献瑞”贵金属新品(3D压岁金、压岁银),产品外观设计以《大闹天宫》中齐天大圣为主体形象,分为1克金、2克金和5克银三款。
产品包装独具特色,是一本“活”的动画书,配有幻彩卡片,客户通过软件(视+AR)扫描能看到《大闹天宫》的立体情景剧场,可以陪孩子、家人一起重温经典。
文化导游、导览
博物馆可看的展品虽多,但是能展示给游客的信息量却很少,许多展品背后都蕴藏着一些非常有趣的信息,这些信息大多从导游的讲解中获取。由于导游的缺乏及费用问题,参观者大都只能走马观花,游览质量不高。AR技术增强和扩展用户对周围环境的感知,为用户提供一种更为人性化的人机交互方式。我们可以看到早期的两个AR导览应用,虽然简单,但是大大丰富了参观的体验。
罗马的PALAZZO MADAMA
意大利罗马的PALAZZO MADAMA,博物馆全程增强现实技术伴随,体验渗透在馆内的每一个地方,无论是进门指示,还是路标,无论是视频讲解,还是全息投影人物,都给人们在博物馆的旅程充满了乐趣。
视频:http://v.qq.com/iframe/player.html?vid=e01696nfh21&tiny=0&auto=0
博物馆智能眼镜导览
来看一段HoloLens的导览演示 视频http://v.qq.com/iframe/player.html?vid=c0309mojamt&tiny=0&auto=0
寓教于乐
格萨尔王AR游戏
国家科技支撑计划项目“基于增强现实互动的西藏主题动漫游戏关键技术集成与应用示范”子课题“增强现实互动关键技术研究”(项目编号:2012BAH61F03)。作为我国北方游牧民族三大史诗之一的《格萨尔王》,历史悠久,结构宏伟,内容丰富,流传广泛。数字素材通过游戏引擎加工成可以和用户进行互动的 APP,分别构建了知识性游戏和娱乐性游戏两个模块。
纽约MoMA博物馆
纽约MoMA博物馆AR应用很有意思。来自全球的参与者可以提前在线上提交自己的作品。而它们随后被内嵌于博物馆的虚拟空间里,成为了一个叠加在常规展之上但又不甚相关的“隐藏展览”。现场的参观者必须通过特定的APP来召唤出这些有意思的展品。
土著舞蹈游戏
美国西北大学的和澳大利亚德邦大学探索了一种AR利用技术、运动捕捉技术将土著人的舞蹈、土著人体彩绘和土著人原来的居住环境等土著传统文化进行可视化呈现的游戏娱乐装置,用于帮助、激发小孩积极参与土著文化传统知识的探索和文化互动式体验。
系统通过摄像头捕捉体验者的舞蹈动作,虚拟的数字化土著人角色也会随着体验者的舞蹈动作和土著音乐节奏跳起土著舞蹈,同时,原始的土著人原生态空间的数字化三维场景也叠加在场景中。
传统绘画涂涂乐
2012年,新西兰坎特伯雷大学人机界面实验室进行了一项将技术应用于传统绘画艺术的研究,幵发了一种集教育性、娱乐性与能激发小孩想象力的互动文化创意产品,如图所示。图中a和b传统的手绘作品,c和d为通过智能终端显示的虚实融合的场景,在手绘作品上叠加了的具有一定情节故事内容的数字三维角色动画、三维场景、背景声音等数字内容信息。值得一提到是,四年前的他们就已经使用了涂涂乐技术。
献给雅典娜的礼物
大英博物馆三星数码探索中心里展示了另一个有意思的应用“献给雅典娜的礼物”。这个APP设计了一个冒险游戏。参与者通过解开一个个小谜团来打开通往下一个故事的锁。通过这样的形式,参与者在学习的过程中一点一点接受相关展品的知识。
该APP借助平板设备,帮助孩子们更好地参观帕特农神庙馆。 例如,当他们走到狄俄尼索斯的雕塑前时,屏幕中就会出现与狄俄尼索斯相关的信息和故事。在他们到达特定地点时,这款APP还设计了诸如拼图游戏等互动环节,完成游戏后可以解锁新的内容。
航空博物馆AR游戏
应用增强现实等技术 ,设计适合儿童的小游戏 ,向儿童介绍飞机相关的小常识 ,丰富多彩 ,寓教于乐 。具体包括“挑战九星战机 ”、“ 3D飞机拆解组装 ”、“ 游览藏品中猜飞机” 、“空中加油飞行模拟”等各种各样的互动体验游戏 。 例 如 ,挑 战九星战机 ,每次随机产生综合展馆内9架飞机 ,成功扫描飞机前二维码 ,即可 点亮相对应的五角星 ,全部成功扫描即挑战成功 。
联想new glass古今穿越,解密寻宝
联想去年9月携手周村共同举行的一场极致穿越体验之旅,这也是全球首次智能眼镜落地智慧旅游的活动。穿越者们除了要疯狂购物外,还需要去周村烧饼博物馆、大染坊、乔家大院等8处景点签到,而签到方法就是用联想new glass扫描景点牌匾。佩戴new glass还能看到视频、图片等内容讲解,感受店铺的历史。
游戏是很好的宣传和普及文化遗产的教育方式
当然还有类似pokemon go
就有人做了山海经版的
酱测评|AR增强现实游戏《山海经GO》,销魂得不行不行
http://mp.weixin.qq.com/s?__biz=MzIwMDUyMDEzOQ==&tempkey=kaUyLMUVolwnLxu5H0EIrVkx2lQPPpjGXeUI3nli6EKGs%2BwXSK6rzkd6P%2BRTcS29ihscP4OxWOQ1w4LRDbe1SsGKVrF6spUjEm0%2BKgjUjMFqoo99yV5mT%2F9ghY3IC0EY36KzeKnAlqMElk%2BXqpZVrg%3D%3D&#rd
请忽视BGM
或许
也能给你一点启发
AR+遗产保护,不只是这些
文化是根,也是宝,在科技飞速发展、物质生活更加丰富的今天,是我们心灵的寄托和港湾。文化遗产不仅仅只是埋在土里、躺在博物馆的死气沉沉,它其实是生活随处可见的历史缩影,只是被我们忽视或误解。当文化遗产与AR碰撞,激出了更多的火花,当然不只是以上罗列。建筑不老,遗产永恒,我们和AR在路上
AR酱原创,转载务必注明
我们的微信号AR酱(ARchan_TT)
*请认真填写需求信息,我们会在24小时内与您取得联系。