文件图片浏览插件

1.需求分析

  • 参考设计
    • 功能点分析
      • 1 页面打开时,用户视角里的图片已经加载完成(1-2页)
      • 2 没有加载的页码 用 加载占位符 代替
      • 3 快速拖动 不加载 (经过的每一页) 当用户在某一页有所停顿时,加载附近几页。当用户停顿在占位符的时候加载附近几页
  • 当前业务需求不同点
    • 1 pdf文件中每一页大小不固定
      • 每页不规则的文件
    • 2 同一个页面 有两套 pdf 浏览插件(导航,预览),他们公用 的数据源是一致(一张文件图片只能加载一次)
    • 3 当文件 经过数字签名后
      • 一 .签名的页码 置空为 占位符(所有经过签名的页码)
      • 二. 用户视角内的文件必须立马 重新转 图片(所传递的参数 不一致)
  • 当前业务所需功能点
    • 1 页面能正常浏览 不卡顿,不耗时,滚动条不能瞬间移位
    • 2 支持页码定位
    • 3 支持放大,缩小
    • 4 导航区域的 文件图片 每页 按 固定宽度 缩放
    • 5 浏览区域的 文件图片 按正常比例 缩放
    • 6 导航区域能 快速定位 到 浏览区域
    • 7 导航区域能 跟随浏览区域 移动
    • 8 用户可视区域内 不能有占位符 (当页面缩小时,用户可视区域可能 会有 很多页,那么那些页面是已经 加载并渲染完成的)
    • 9 兼容主流浏览器,IE兼容到9

2.设计思想

  • 文件图片加载流程
    • 1 未加载的页码
    • 2 已加载未渲染 (得到页面图片链接,未将图片加载到浏览器缓存中,不增加浏览器内存)
    • 3 已渲染
  • 一个文件图片的数据
    • page 页码
    • width 宽度(缩放后的)
    • height 高度(缩放后的)
    • zoomRate 页面图片缩放比例
    • imagePage 图片链接
      注:因为这里涉及到很多 因为业务还改的内容,我这里将两者分开,如果不加业务插件,就相当于一个独立的插件

滚动,定位,缩放
控制层
导航view
预览view
业务判断
控制事件
外部接口
外部接口
请求事件
数据层
业务控制
用户事件
用户签名记录

业务控制
1.生产一个回调事件
2.正常加载请求–>调参数控制–>请求控制

假设文档有二百页,用户在第二页向下滚动,那我的提前加载(3,4,5)
假设文档有二百页,用户在第二页,急速定位到 100页,那么(就要加载 100 页的前后三页)向上滚动就加载 100 之前的页,向下滚动就加载 100 之后的页码
假设文档有二百页,用户在第二页 突然将滚动条拖到中间 50页的位置那么,用户暂停,那么我就必须加载 50页 的前三页 和 后三页

以上就要 得到滚动条是暂停,向下滚动,向上滚动,非正常滚动
根据以上需求我写了一个 滚动条的插件

猜你喜欢

转载自blog.csdn.net/qq_28400257/article/details/84965737
今日推荐