2种模式,7种方法,解析页面加载的处理逻辑



很多初级PM经常发现自己APP的页面显示有问题,比如一直转菊花,比如加载体验很差,比如内容很多的时候需要等很久才能看到内容等等。这其实是没设计好页面加载的逻辑。其实用一张图就可以讲清楚页面加载如何处理逻辑。

点击查看大图

简单来说页i。

页面加载模式

页面加载主要有2种模式:

  • 先获取数据再显示页面(预先加载下一个页面数据,点击后立即显示下一个页面的所有内容。)
  • 先显示页面再获取数据(点击某个按钮立即进去下一个页面,然后再获取所有控件的数据。)

默认是第2种,除非PD特殊说明。

以下页面加载方法可以单独使用,也可以混合使用。

当父子页面字段可以复用,再加载子页面的该字段请从本地获取而不是服务端。

方法一:整体加载

整体加载(Native页)

  • 定义:加载完所有内容后,再展示给用户看
  • 作用:能保证内容的整体性,能系统化的阅读所有内容。
  • 交互:显示在页面中央,先显示”加载中toast”,同时客户端拉取数据,全部拉取成功后再隐藏”加载中toast”,如果拉取失败则显示”失败toast”。
  • 场景:某些重要页面,比如购物车
  • 注意:可能有强烈的等待感,当超过3s后让用户产生焦躁。

整体加载(H5页)

H5页面一般都采用该方法,具体规则如上。

分块加载

  • 定义:根据资源类型进行先后加载。文字→图片→语音→视频封面→其他资源
  • 作用:可以帮助用户快速阅读内容。
  • 场景:文章阅读页、新闻详情页
  • 注意:也许会丢失掉重要的关键信息,无法建立信息获取的闭环。

具体的流程是这样的:

整页加载

  • 定义:当前页与下一页是整页切换的时候,可以采用整页加载的形式。
  • 作用:能保证每个页面的完整性,体验比较顺畅。
  • 场景:全屏查看多图
  • 注意:
  1. 不好保证整页的加载效率,且有可能影响浏览的流畅度。
  2. 每个页面的数据量不能很大。

分页加载

自动

  • 定义:展示列表数据的时候,比如默认展示20条,滚动到最后的时候自动再加载20条。
  • 作用:把用户代入无尽浏览模式,让用户一直向下滚动,不需要手动点击下一页。
  • 场景:列表页,比如Pinterest的首页瀑布流
  • 注意:没有尽头,容易迷失,不方便快速索引定位到某个内容。

手动

  • 定义:展示列表数据的时候,比如默认展示20条,滚动到最后的时候,点击加载20条。
  • 作用:方便快速索引定位到某个内容。
  • 场景:列表页,比如Pinterest的首页瀑布流
  • 注意:需要手动点击下一页。

分屏加载

  • 定义:先加载框架和文字,再加载第一屏数据,向下滚动到哪里加载到哪里。
  • 作用:可以帮助用户快速阅读内容。
  • 场景:多屏并且数据较大的页面,比如h5电商活动页
  • 注意:也许会丢失掉重要的关键信息,无法建立信息获取的闭环。

智能加载

  • 定义:非WIFI网络下,只加载内容框架以及文字,图片视频等只显示占位符。点击占位符,才去获取真实图片。WIFI网络下,初始加载所有资源。
  • 作用:根据具体场景来控件流量和加载速度。
  • 场景:数据量比较大的页面,比如优酷的视频详情页
  • 注意:不一定真实有效的命中用户需求。

WIFI预先加载

  • 定义:有WIFI的时候预先加载常用数据,缓存到本地,当没网的时候,直接加载已经缓存下来的内容。使用了预加载+离线缓存机制。
  • 作用:解决了没网获取数据的问题,且节约了流量。
  • 场景:小说阅读App、视频类App。
  • 注意:占用本地存储空间,有时候预加载的内容最后用户没看。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nutch Htmlunit Plugin 重要说明: 当前项目基于Nutch 1.X系列已停止更新维护,转向Nutch 2.x系列版本的新项目:http://www.oschina.net/p/nutch-ajax 项目简介 基于Apache Nutch 1.8和Htmlunit组件,实现对于AJAX加载类型页面的完整页面内容抓取解析。 According to the implementation of Apache Nutch 1.8, we can't get dynamic HTML information from fetch pages including AJAX requests as it will ignore all AJAX requests. This plugin will use Htmlunit to fetch whole page content with necessary dynamic AJAX requests. It developed and tested with Apache Nutch 1.8, you can try it on other Nutch version or refactor the source codes as your design. 主要特性 常规的HTML页面抓取: 对于常规的例如新闻类没有AJAX特性的页面可以直接用Nutch自带的protocol-http插件抓取。 常规的AJAX页面抓取: 对于绝大部分诸如jQuery ajax加载页面,可以直接用protocol-htmlunit插件抓取。 特殊的AJAX请求页面抓取: 诸如淘宝/天猫的页面采用了独特的Kissy Javascript组件, 导致htmlunit无法直接感知到需要等待Kissy发起的请求完成,通过等待页面加载解析内容判断处理实现此类页面数据抓取。 基于页面滚动的AJAX请求页面抓取: 诸如淘宝/天猫的商品详情页面会基于页面滚动发起商品描述信息的加载, 通过protocol-htmlunit扩展处理可以实现此类页面数据抓取。 运行体验 由于Nutch运行是基于Unix/Linux环境的,请自行准备Unix/Linux系统或Cygwin运行环境。 git clone整个工程代码后,进行本地git下载目录: cd nutch-htmlunit/runtime/local bin/crawl urls crawl false 1 //urls参数为爬虫入库url文件目录; crawl为爬虫输出目录; false本应为solr索引url参数,此处设置为false不做solr索引处理; 1为爬虫执行回数 运行结束后可以看到天猫商品页面的价格/描述/滚动加载的图片等所有信息都已经完整获取到。 运行日志输入示例参考:http://git.oschina.net/xautlx/nutch-htmlunit/wikis/Log 扩展插件说明 protocol-htmlunit: 基于Htmlunit实现的AJAX页面Fetcher插件 parse-s2jh: 基于XPath解析页面元素内容; 基于数据模式输出解析到结构化数据; 对于个别复杂类型AJAX页面定制判断页面加载完成的回调判断逻辑 index-s2jh: 追加设置需要额外传递给solr索引的属性数据; 设定不需要索引的页面规则; 欢迎关注作者其他项目: S2JH - 基于SSH的企业Web应用开发框架 12306 Hunter - (功能已失效不可用,不过还可以当作Swing开发样列参考只用)Java Swing C/S版本12306订票助手,用处你懂的 标签:nutch
在现有省、市港口信息化系统进行有效整合基础上,借鉴新 一代的感知-传输-应用技术体系,实现对码头、船舶、货物、重 大危险源、危险货物装卸过程、航管航运等管理要素的全面感知、 有效传输和按需定制服务,为行政管理人员和相关单位及人员提 供高效的管理辅助,并为公众提供便捷、实时的水运信息服务。 建立信息整合、交换和共享机制,建立健全信息化管理支撑 体系,以及相关标准规范和安全保障体系;按照“绿色循环低碳” 交通的要求,搭建高效、弹性、高可扩展性的基于虚拟技术的信 息基础设施,支撑信息平台低成本运行,实现电子政务建设和服务模式的转变。 实现以感知港口、感知船舶、感知货物为手段,以港航智能 分析、科学决策、高效服务为目的和核心理念,构建“智慧港口”的发展体系。 结合“智慧港口”相关业务工作特点及信息化现状的实际情况,本项目具体建设目标为: 一张图(即GIS 地理信息服务平台) 在建设岸线、港口、港区、码头、泊位等港口主要基础资源图层上,建设GIS 地理信息服务平台,在此基础上依次接入和叠加规划建设、经营、安全、航管等相关业务应用专题数据,并叠 加动态数据,如 AIS/GPS/移动平台数据,逐步建成航运管理处 "一张图"。系统支持扩展框架,方便未来更多应用资源的逐步整合。 现场执法监管系统 基于港口(航管)执法基地建设规划,依托统一的执法区域 管理和数字化监控平台,通过加强对辖区内的监控,结合移动平 台,形成完整的多维路径和信息追踪,真正做到问题能发现、事态能控制、突发问题能解决。 运行监测和辅助决策系统 对区域港口与航运业务日常所需填报及监测的数据经过科 学归纳及分析,采用统一平台,消除重复的填报数据,进行企业 输入和自动录入,并进行系统智能判断,避免填入错误的数据, 输入的数据经过智能组合,自动生成各业务部门所需的数据报 表,包括字段、格式,都可以根据需要进行定制,同时满足扩展 性需要,当有新的业务监测数据表需要产生时,系统将分析新的 需求,将所需字段融合进入日常监测和决策辅助平台的统一平台中,并生成新的所需业务数据监测及决策表。 综合指挥调度系统 建设以港航应急指挥中心为枢纽,以各级管理部门和经营港 口企业为节点,快速调度、信息共享的通信网络,满足应急处置中所需要的信息采集、指挥调度和过程监控等通信保障任务。 设计思路 根据项目的建设目标和“智慧港口”信息化平台的总体框架、 设计思路、建设内容及保障措施,围绕业务协同、信息共享,充 分考虑各航运(港政)管理处内部管理的需求,平台采用“全面 整合、重点补充、突出共享、逐步完善”策略,加强重点区域或 运输通道交通基础设施、运载装备、运行环境的监测监控,完善 运行协调、应急处置通信手段,促进跨区域、跨部门信息共享和业务协同。 以“统筹协调、综合监管”为目标,以提供综合、动态、实 时、准确、实用的安全畅通和应急数据共享为核心,围绕“保畅通、抓安全、促应急"等实际需求来建设智慧港口信息化平台。 系统充分整合和利用航运管理处现有相关信息资源,以地理 信息技术、网络视频技术、互联网技术、移动通信技术、云计算 技术为支撑,结合航运管理处专网与行业数据交换平台,构建航 运管理处与各部门之间智慧、畅通、安全、高效、绿色低碳的智 慧港口信息化平台。 系统充分考虑航运管理处安全法规及安全职责今后的变化 与发展趋势,应用目前主流的、成熟的应用技术,内联外引,优势互补,使系统建设具备良好的开放性、扩展性、可维护性。
DNS(Domain Name System)域名解析有两模式:递归查询和迭代查询。 1. 递归查询(Recursive Query):在递归查询中,DNS客户端向本地DNS服务器发送一个域名查询请求,本地DNS服务器会负责从根域名服务器开始一直向下查询,直到找到最终的IP地址并返回给客户端。客户端不需要进行进一步的查询,本地DNS服务器会为其完成整个解析过程。这模式下,DNS服务器承担了大部分查询工作,客户端只需等待结果。递归查询是DNS解析的默认模式。 2. 迭代查询(Iterative Query):在迭代查询中,DNS客户端向本地DNS服务器发送一个域名查询请求,本地DNS服务器只返回一个指向更高级别DNS服务器的地址,并不直接提供结果。然后客户端会向上一级DNS服务器发送请求,这个过程会一直重复,直到最终获得IP地址。在迭代查询中,DNS客户端需要主动向不同的DNS服务器发送请求,并根据返回的指示进行下一步的查询。这模式下,客户端需要主动参与解析过程。 区别: - 递归查询模式相对简单,客户端只需发送一次请求,而本地DNS服务器负责完成整个解析过程。适用于普通用户或者不熟悉DNS系统的场景。 - 迭代查询模式相对复杂,客户端需要主动进行多次查询和交互,但也能够更灵活地控制查询过程。适用于专业用户或者需要更精确控制解析过程的场景。 总的来说,递归查询模式更加便捷,而迭代查询模式更加灵活。具体使用哪模式取决于网络环境和需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值