iOS-UIScrollView内容复用【实现两个试图的复用】

这里说的内容复用,是指添加到ScrollView里面的试图是同一个模型;比如,我需要在ScrollView上添加100个xkView(其他封装好的VC、UIView),每次滑动ScrollView时,只需要更新xkView上的内容就行;ScrollView内容较多的情况下,可以考虑复用。最近做试卷排版,在做试卷展示时,我封装好了一个基于VC的试题模型 PaperQuestionViewController(用于显示每道试题的内容,模板里要加 index索引属性,便于复用),因为一套试卷,会有100+道试题,因为我的排版用到了Coretext,如果一下子把100+个试图同时添加到ScrollView上,不复用,内存会比较大,这是复用最重要的原因;【也可以用UIcollectionView,根据需求而定】。当前VC.m///所有试题数组@property(nonatomic,strong)NSArray*arrayQuestin;///UIScrollView@property(nonatomic,strong)UIScrollView*scrollview;///保存...

100GB以上超大文件上传和断点续传服务器的实现

1 背景用户本地有一份txt或者csv文件,无论是从业务数据库导出、还是其他途径获取,当需要使用蚂蚁的大数据分析工具进行数据加工、挖掘和共创应用的时候,首先要将本地文件上传至ODPS,普通的小文件通过浏览器上传至服务器,做一层中转便可以实现,但当这份文件非常大到了10GB级别,我们就需要思考另一种形式的技术方案了,也就是本文要阐述的方案。技术要求主要有以下几方面:支持超大数据量、10G级别以上稳定性:除网络异常情况100%成功准确性:数据无丢失,读写准确性100%效率:1G文件分钟级、10G文件小时级体验:实时进度感知、网络异常断点续传、定制字符特殊处理2 文件上传选型文件上传至ODPS基本思路是先文件上传至某中转区域存储,然后同步至ODPS,根据存储介质可以分为两类,一类是应用服务器磁盘,另一类类是中间介质,OSS作为阿里云推荐的海量、安全低成本云存储服务,并且有丰富的API支持,成为中间介质的首选。而文件上传至OSS又分为web直传和sdk上传两种方案,因此上传方案有如下三种,详细优缺点对比如下:蚂蚁的文本上传功能演进过程中对第一种、第二种方案均有实践,缺点比较...

50GB以上超大文件上传和断点续传服务器的实现

一、概述 所谓断点续传,其实只是指下载,也就是要从文件已经下载的地方开始继续下载。在以前版本的HTTP协议是不支持断点的,HTTP/1.1开始就支持了。一般断点下载时才用到Range和Content-Range实体头。HTTP协议本身不支持断点上传,需要自己实现。 二、Range  用于请求头中,指定第一个字节的位置和最后一个字节的位置,一般格式:   Range:用于客户端到服务端的请求,可以通过改字段指定下载文件的某一段大小及其单位,字节偏移从0开始。典型格式:  Ranges:  (unit=firstbytepos)-[lastbytepos]   Ranges:   bytes=4000-下载从第4000字节开始到文件结束部分   Ranges:   bytes=0~N下载第0-N字节范围的内容   Ranges:&nb...

20GB以上超大文件上传和断点续传服务器的实现

随着视频网站和大数据应用的普及,特别是高清视频和4K视频应用的到来,超大文件上传已经成为了日常的基础应用需求。但是在很多情况下,平台运营方并没有大文件上传和断点续传的开发经验,往往在网上找一些简单的PHP或者Java程序来实现基本的上传功能,然而在实际使用中会发现,这些基于脚本语言实现的上传功能模块性能很弱,一是不支持2GB以上的内容上传;二是无法支持断点续传;三是效率极低,单台服务器最多支持几十个并发上传连接。当前我们要搭建一个运营级的视频服务平台,在尝试了各种产品均无法满足要求,因此最后花精力自主用C++语言实现了这一高性能上传服务器。 项目地址:http://git://10.168.4.241/up6/web/asp.net.gitHyperUploadServer 超级上传服务器 这是一款超级文件上传服务器,采用异步I/O架构,采用C++语言编码实现。它支持4GB以上超大文件上传和断点续传,支持Windows和Linux服务器平台,支持任意格式的文件上传,尤其适合大的视频网站应用。单台服务器支持1000并发上传进程,支持PC端和智能手机端主流的浏...

10GB以上超大文件上传和断点续传服务器的实现

需求:支持大文件批量上传(20G)和下载,同时需要保证上传期间用户电脑不出现卡死等体验;内网百兆网络上传速度为12MB/S服务器内存占用低支持文件上传文件夹中的文件数量达到1万个以上,且包含层级结构。支持PC端全平台操作系统,Windows,Linux,Mac支持文件文件夹的批量下载,断点续传。刷新页面后继续传输。关闭浏览器后保留进度信息。支持文件夹批量上传下载,服务器端保留文件夹层级结构,服务器端文件夹层级结构与本地相同。支持断点续传,关闭浏览器或刷新浏览器后仍然能够保留进度。支持文件夹结构管理,支持新建文件夹,支持文件夹目录导航交互友好,能够及时反馈上传的进度;服务端的安全性,不因上传文件功能导致JVM内存溢出影响其他功能使用;最大限度利用网络上行带宽,提高上传速度; 分析:对于大文件的处理,无论是用户端还是服务端,如果一次性进行读取发送、接收都是不可取,很容易导致内存问题。所以对于大文件上传,采用切块分段上传上传的效率来看,利用多线程并发上传能够达到最大效率。 解决方案:文件上传页面的前端可以选择使用一些比较好用的上传组件,例如百度的开源组件WebUp...

Flash 以上超大文件上传和断点续传服务器的实现

前言:因自己负责的项目(jetty内嵌启动的SpringMvc)中需要实现文件上传,而自己对java文件上传这一块未接触过,且对Http协议较模糊,故这次采用渐进的方式来学习文件上传的原理与实践。该博客重在实践。 一.Http协议原理简介     HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(NextGenerationofHTTP)的建议已经提出。    简单来说,就是一个基于应用层的通信规范:双方要进行通信,大家都要遵守一个规范,这个规范就是HTTP协议。 1.特点:  (1)支持客户/服务器模式。  (2)简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法...

WebUploader 以上超大文件上传和断点续传服务器的实现

本人在2010年时使用swfupload为核心进行文件的批量上传的解决方案。见文章:WEB版一次选择多个文件进行批量上传(swfupload)的解决方案。本人在2013年时使用plupload为核心进行文件的批量上传的解决方案。见文章:WEB版一次选择多个文件进行批量上传(Plupload)的解决方案最近在学习百度的开源上传组件WebUploader,写了一些示例以记录。WebUploader的缺点是没有一个比较好的现成的界面,这个界面需要自己去实现。自由度高了一些。WebUploader是由BaiduWebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件。在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用原来的FLASH运行时,兼容IE6+,iOS6+,android4+。两套运行时,同样的调用方式,可供用户任意选用。浏览器支持ie6,ie7,ie8,ie9,ie10,ie11,firefox,chrome,edge。支持全平台操作系统:Windows,Mac,Linux支持文件上传下载,文件批量上传下载,层级目录保存...

HTML5 以上超大文件上传和断点续传服务器的实现

1,项目调研因为需要研究下断点上传的问题。找了很久终于找到一个比较好的项目。 在GoogleCode上面,代码弄下来超级不方便,还是配置hosts才好,把代码重新上传到了github上面。 https://github.com/freewebsys/java-large-file-uploader-demo 效果: 上传中,显示进度,时间,百分比。 点击【Pause】暂停,点击【Resume】继续。 2,代码分析原始项目: https://code.google.com/p/java-large-file-uploader/ 这个项目最后更新的时间是 2012 年,项目进行了封装使用最简单的方法实现了http的断点上传。 因为html5 里面有读取文件分割文件的类库,所以才可以支持断点上传,所以这个只能在html5 支持的浏览器上面展示。 同时,在js 和 java 同时使用 cr32 进行文件块的...

VUE 以上超大文件上传和断点续传服务器的实现

最近遇见一个需要上传超大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现。在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表格数据、上传影音文件等。如果文件体积比较大,或者网络条件不好时,上传的时间会比较长(要传输更多的报文,丢包重传的概率也更大),用户不能刷新页面,只能耐心等待请求完成。下面从文件上传方式入手,整理大文件上传的思路,并给出了相关实例代码,由于PHP内置了比较方便的文件拆分和拼接方法,因此服务端代码使用PHP进行示例编写。本文相关示例代码位于github上,主要参考聊聊大文件上传文件切割上传文件上传的几种方式首先我们来看看文件上传的几种方式。普通表单上传使用PHP来展示常规的表单上传是一个不错的选择。首先构建文件上传的表单,并指定表单的提交内容类型为enctype="multipart/form-data",表明表单需要上传二进制数据。然后编写index.php上传文件接收代码,使用move_uploaded_file方法即可(php大法好…)form表单上传文件时,很容易遇见服...

B/S 以上超大文件上传和断点续传服务器的实现

众所皆知,web上传文件,一直是一个痛。上传文件大小限制,页面响应时间超时.这些都是web开发所必须直面的。本文给出的解决方案是:前端实现数据流分片长传,后面接收完毕后合并文件的思路。实现文件上传,要求:服务端保留层级结构,支持10w级别的文件上传。大文件上传及断点续传,要求:支持50G级的单个文件上传和续传。续传要求:在刷新浏览器后能够续传上传,在重启浏览器后能够继续上传上(关闭浏览器后重新打开),在重启电脑后能够继续上传。支持PC端全平台,Windows,Mac,Linux浏览器要求支持全部浏览器,包括ie6,ie7,ie8,ie9,Chrome,Firefox 下面贴出简易DEMO源码分享:前端页面: 后端代码,此Demo是基于MVC架构的:后端代码我进行了模块划化,而不是网上的将所有的模块放在一个类中,这样对于以后的维护和升级来说都是一个灾难。 文件块处理逻辑 文件块保存逻辑如下 web.xml配置如下 整个项目的截图 依赖的JAR包如下 运行效果如下: 在此分享!希望多多指正~后端...

网页 以上超大文件上传断点续传服务器的实现

需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制。 第一步:前端修改由于项目使用的是BJUI前端框架,并没有使用框架本身的文件上传控件,而使用的基于jQuery的Uploadify文件上传组件,在项目使用的jslib项目中找到了BJUI框架集成jQueryUploadify的部分,这部分代码封装在bjui-all.js文件中, 在bjui-all.js文件中的全局变量定义中有以下部分代码,这就是定义的有关于上传的Uploadify控件的重要变量:  upload:{uploadLimit:5,fileSizeLimit:31744,removeTimeout:0.8}以上三个变量代表的含义是:uploadLimit:表示上传文件个数的限制,5表示文件上传个数限制是5个fileSizeLimit:表示上传文件大小的限制,31744单位是KB,也就是表示31MremoveTimeout:表示移除文件的时间限制继续查找使用到这些变量的地方,看...

web 以上超大文件上传和断点续传服务器的实现

javaweb上传文件上传文件的jsp中的部分上传文件同样可以使用form表单向后端发请求,也可以使用ajax向后端发请求    1.通过form表单向后端发送请求         <formid="postForm"action="${pageContext.request.contextPath}/UploadServlet"method="post"enctype="multipart/form-data">            <divclass="bbxxwrap">                <inputtype="text"id="s...

php 以上超大文件上传和断点续传服务器的实现

前段时间做视频上传业务,通过网页上传视频到服务器。视频大小小则几十M,大则1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制;2,请求时间过长,请求超时;3,传输中断,必须重新上传导致前功尽弃; 解决方案:1,修改服务端上传的限制配置;Nginx以及PHP的上传文件限制不宜过大,一般5M左右为好;2,大文件分片,一片一片的传到服务端,再由服务端合并。这么做的好处在于一旦上传失败只是损失一个分片而已,不用整个文件重传,而且每个分片的大小可以控制在4MB以内,服务端限制在4M即可。前端使用UP6大文件上传控件<div class="sectionsection6section5">    <div class="part1"><a href="javascript:;" target="_blank" class="part1__btn">批量删除</a><span class=...

csharp 以上超大文件上传和断点续传服务器的实现

IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头。 一. 两个必要响应头Accept-Ranges、ETag        客户端每次提交下载请求时,服务端都要添加这两个响应头,以保证客户端和服务端将此下载识别为可以断点续传的下载:Accept-Ranges:告知下载客户端这是一个可以恢复续传的下载,存放本次下载的开始字节位置、文件的字节大小;ETag:保存文件的唯一标识(我在用的文件名+文件最后修改时间,以便续传请求时对文件进行验证);Last-Modified:可选响应头,存放服务端文件的最后修改时间,用于验证 二. 一个重要请求头RangeRange:首次下载时,Range头为null,此时服务端的响应头中必须添加响应头Accept-Ranges、ETag;            &n...

C#.NET 以上超大文件上传和断点续传服务器的实现

以ASP.NETCoreWebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API,包括文件上传和下载。 准备文件上传的API #region 文件上传  可以带参数        [HttpPost("upload")]        publicJsonResultuploadProject(IFormFilefile,stringuserId)        {            if(file!=null)    ...
首页上一页...586587588589590...下一页尾页