3.加载

加载是用户指令执行期间计算机的一系列动作,包括请求、响应、计算和渲染等。文章讨论了全页面加载、占位色块、进度条、分步加载、懒加载、预加载、混合模式、智能加载、渐进加载和后台加载等多种策略,旨在优化用户体验,解决加载时间过长导致的用户耐心问题。
摘要由CSDN通过智能技术生成

加载

  1. 什么是加载

 用户在客户端发出一个指令后,直到客户端出现反馈结果时,这段时间内计算机完成的一系列执行动作,可能包括有客户端发出请求,服务器做出响应,客户端拿到数据后计算,渲染等。

  1. 加载遇到的问题

  有些加载过程的时间可能会比较长,甚至用户不知道此时应用是卡死了还是在执行命令,这样就会导致用户体验降低,用户会对应用失去耐心。

3.加载策略

  全页面加载、占位色块加载、进度条加载、分步加载、懒加载(又称为延迟加载)、预加载、混合加载模式、智能加载、渐进加载、后台加载。

  全页面加载:将整个页面一起加载。这一过程用户不需要了解,不需要等待,在正常情况下体验是非常棒的。

  占位色块加载:在页面即将出现的位置加载占位色块,等到数据加载完成后将数据陆续填进色块(给用户加载很快的感觉,体验会比全页面加载流畅)。让等待时间变得更加有趣,保持用户感受的连续性。

  进度条加载:可以清楚的看到当前进度,反馈十分明确。反馈明确,清晰易懂缺点:页面无内容,美观度较低。

  分步加载:优先加载占网络资源较小的元素。先加载页面框架和文字信息,在网速较慢时能提前预览即将出现的内容缺点:只加载了部分内容的页面会对整体美观度产生影响,也会影响用户对页面内容的理解。

  懒加载:用户滚动页面时显示出图片的时候才加载图片。只加载用户看得到的内容,页面加载速度快,服务器压力较小,节省用户流量,体验较好缺点:当网络状况不佳时可能会出现体验不流畅,加载延迟等状况。

  预加载:与懒加载相反。预先加载即将出现的内容,用户可以顺畅的在应用中交互,享受到极快的加载速度缺点:服务器压力增加,用户会耗费更多流量。

  混合加载模式:为了能让产品有一个流畅的体验,很多app会根据产品的各种不同场景来组合使用不同加载方式。根据不同场景来设计,体验升级缺点:需要对各场景制定对应的加载规范,保证交互一致性。

  智能加载:根据不同的网络状况来加载不同的数据。

  渐进加载:在 PC 端用浏览器看图片的时候,经常是先看到一张模糊图,然后再渐渐的变得清晰,这种效果就叫做渐进式加载。

  后台加载:用户在操作后,客户端立刻反馈操作成功,然后把请求放到后台与服务器交互。这一过程用户不需要了解,不需要等待,在正常情况下体验是非常棒的。

  1. 经验

  不确定的等待时间比已知的、有限的等待时间让人觉得更长。

  在设计app的加载方式时,让加载时间变的更加有价值,或让等待时间变得更加有趣,或保持用户感受的连续性,或三者结合。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先你需要准备好一个3D场景模型,例如一个OBJ或者GLTF文件。然后你需要引入three.js库文件并创建一个场景(Scene)、渲染器(Renderer)、相机(Camera)和光源(Light)等基本元素。 接下来,你需要使用three.js的加载器(Loader)来加载你的3D场景模型。例如,如果你要加载一个OBJ文件,你可以使用OBJLoader加载器。加载完成后,将模型添加到场景中。 最后,你需要在动画循环中(render loop)使用渲染器(Renderer)渲染场景(Scene)。在每一帧中,场景中的3D模型将被渲染到浏览器窗口中。 下面是一个基本的three.js加载3D模型的代码示例: ``` // 引入three.js库文件 import * as THREE from 'three'; // 创建场景、相机和渲染器 const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); const renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); // 添加光源 const light = new THREE.AmbientLight(0xffffff, 1); scene.add(light); // 创建OBJLoader加载器 const loader = new THREE.OBJLoader(); // 加载OBJ文件 loader.load( // 模型文件路径 'path/to/model.obj', // 加载完成后的回调函数 function (object) { // 将模型添加到场景中 scene.add(object); }, // 加载中的回调函数 function (xhr) { console.log((xhr.loaded / xhr.total * 100) + '% loaded'); }, // 加载失败的回调函数 function (error) { console.log('An error happened'); } ); // 动画循环 function animate() { requestAnimationFrame(animate); renderer.render(scene, camera); } animate(); ``` 这是一个简单的示例代码,你可以根据你的需求进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值