一种网页文档编辑器中的资源加载方法技术

技术编号:11665727 阅读:137 留言:0更新日期:2015-07-01 03:59
本发明专利技术公开了一种网页文档编辑器中的资源加载方法,首先创建一个用于记录外部资源url以及内部资源url的已加载资源映射表,在对网页文档进行修改时,查找修改后的文档内容中的外部资源url,并检索已加载资源映射表中是否存在查找到的外部资源url,若是则将查找到的外部资源url替换为与其对应的内部资源url,若否则将查找到的外部资源url对应的外部资源复制到内部存储设备中,确定其内部资源url,并将外部资源url以及与其对应的内部资源url添加到已加载资源映射表。通过该方法,能够确保文档中的外部资源url都及早的被修改与其对应的内部资源url,解决了资源加载过程中存在的外部资源url蔓延的问题。

【技术实现步骤摘要】

本专利技术涉及网页处理
,具体涉及一种网页文档编辑器中的资源加载方 法。
技术介绍
网页文档编辑器,指的是在网页浏览器环境中运行的文档编辑器程序,能够被其 编辑的文档通常是HTML (超文本标记语言)、XHTML (可扩展超文本标记语言)、CSS (级联样 式表)、SVG (可缩放矢量图形)、MathML (数学标记语言)、XML (可扩展标记语言)等格式,或 者其衍生格式,如印ub格式。其中,上述网页浏览器环境不仅包括普通的浏览器,也包括实 现了浏览器核心功能的类似浏览器的运行环境。 网页文档编辑器管理的、用于存储被编辑的文档及其相关资源的存储设备为内部 存储设备,内部存储设的具体形式可能是以下三种: (1) webfilesystem(浏览器文件系统); (2)网络上的某个服务器提供的存储空间; (3)本地文件系统中的某个地方。 网页文档编辑器中被编辑的文档还会引用一些文件,它们不存在于文档本身中, 被称为资源。资源通常是二进制文件,包括图像、视频、音频、字体等。例如HTML img、video、 audio标签的src属性(源文件属性)是个url,指向一个图片文件,该图片文件就是资源。 CSS中的background-image等属性通过url()函数引用资源。资源可分为内部资源和外 部资源,内部资源是指该资源存储于内部存储设备,否则就属于外部资源,指向内部资源的 url就是内部资源url,否则就是外部资源url。由于外部资源不受该网页文档编辑器的管 理,因此随时可能被删除、改名、修改,或变得不可访问。因此,如果被编辑文档需要插入外 部资源,网页文档编辑器往往需要将外部资源复制到内部存储器中,然后在文档中写入内 部资源url,或者将已经写入文档的外部资源url修改为对应的内部资源url,以避免上述 问题,这个复制过程以及相关的操作称为资源加载。 D0M即文档对象模型是一种用于网页文档的编程接口,D0M树定义了网页文档的 逻辑结构,MutationObserver(变动观察器)是浏览器中用于监视D0M树修改的一种机制, 当D0M对象树发生任何变动的时候,对每个修改操作,产生一个MutationRecord,用户代码 通过MutationRecord了解D0M树有哪些修改。 较新的浏览器(如IE 10, Firefox 4, Chrome 8,或其更高版本)支持blob (二进 制大对象)和blob-url (指向一个blob的url)机制。浏览器中,blob是个对象,表示一个 只读的二进制数据块,其实际的存储机制有多种,包括内存块、数据库记录、文件等。浏览器 中还可以创建指向blob对象的url,即blob-url,这是通过URL. create0bjectURL()方法 实现的。blob-url是临时性的,一个页面创建的blob-url在页面关闭后即告失效。因此, blob-url可以被视为外部资源url。 撤销重做管理器是多数网页文档编辑器的重要组成部分之一,它记录用户对文档 做出的每一步修改,以便能够撤销或重放每一步修改操作。 现有的网页文档编辑器有很多种,例如NicEdit、TinyMCE、CKEditor等,其主要编 辑的文档格式是HTML。当需要向被编辑的HTML文档中插入一个位于本地文件系统上的资 源,如图像文件时,资源的加载有几种方法: 1.传统的方法是,先将该图像上传到网络上的某个服务器上(即利用服务器做内 部存储设备),得到该图像在该服务器上的url (内部资源url),然后在被编辑文档中插入 一个img标签,将其src属性修改为上述url。这样做的缺点是:(1)不能在离线的状态下 操作(2)当文件较大或者网络较慢时,需要较长时间才能完成上传,而直到完成后才能将该 图像显示出来。现有的网页文档编辑器大都采用此方法。 2.在支持blob-url的浏览器上,可以从待插入的本地图像文件生成相应的 blob-url (外部资源url),然后在被编辑文档中插入一个img标签,将其src属性修改为上 述blob-url,这样,图像可以立即显示出来;之后,可以在后台将图像文件上传到服务器, 得到该图像在该服务器上的url (内部资源url),再将上述blob-url替换为服务器上的 url。这大致克服了上述传统方法的缺点,一方面图像可以马上显示,另一方面当网络暂时 不可用或缓慢时仍可操作,但长时间离线时仍然不可操作。 3.在支持blob-url和web filesystem的浏览器上,可以从待插入的本地图像文 件生成相应的blob-url (外部资源url),然后在被编辑文档中插入一个img标签,将其src 属性修改为上述blob-url,这样,图像可以立即显示出来;之后,可以在后台将图像文件复 制到web filesystem上,得到该图像在web filesystem上的url (内部资源url),再将上 述blob-url替换为web filesystem上的url。由于web filesystem位于本地,所以即使 长时间离线仍可操作。 在方法2和3中,会遇到"外部资源url蔓延"的问题,具体如下:由于将外部资 源复制到内部存储器可能要花一段不短的时间,这期间用户可能会继续编辑文档,例如将 引用外部资源url的img标签克隆了多份;或者将该img标签连同外部资源url复制到剪 贴板,稍后再粘贴回文档;如果该网页文档编辑器有撤销重做管理器,则该外部资源url还 可能被复制到撤销重做管理器中,并在执行撤销/重做时重新写入到文档中。也就是说,一 旦一个外部资源url被写入文档,则经过后续的编辑操作,该url可能出现在文档的多个地 方,也可能在之后任何时候被重新写入文档的任何地方,这就是"外部资源url蔓延"的问 题。如前所述,外部资源url随时可能失效,需要及时修改为对应的内部资源url。但是由 于外部资源url蔓延,及时发现所有的外部资源url往往是困难和低效的,仅仅在资源复制 结束后将最初使用该外部资源url的img标签的src修改为内部资源url是不够的。 本专利技术提供,能够在资源加载过程中以及 之后,可靠和高效地将外部资源url修改为内部资源url,克服外部资源url蔓延问题。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种网页文档编辑器中的资 源加载方法,解决网页文档编辑器资源加载过程中的外部资源url蔓延的问题。 为实现上述目的,本专利技术采用的技术方案为:一种网页文档编辑器中的资源加载 方法,包括以下步骤: (1)创建已加载资源映射表;所述的已加载资源映射表用于记录网页文档中已加 载的外部资源的外部资源url,以及将外部资源复制到网页文档编辑器的内部存储设备后 其对应的内部资源url; (2)监视对待编辑网页文档的修改,查找修改后的文档内容中的外部资源url ; (3)检索已加载资源映射表中是否存在查找到的外部资源url,若是则将查找到的 外部资源url替换为与其对应的内部资源url,若否则进入步骤(4); (4)将查找到的外部资源url对应的外部资源复制到网页文档编辑器的内部存储 设备中,确定其内部资源url,并将外部资源url以本文档来自技高网
...

【技术保护点】
一种网页文档编辑器中的资源加载方法,包括以下步骤:(1)创建已加载资源映射表;所述的已加载资源映射表用于记录网页文档中已加载的外部资源的外部资源url,以及将外部资源复制到网页文档编辑器的内部存储设备后其对应的内部资源url;(2)监视对待编辑网页文档的修改,查找修改后的文档内容中的外部资源url;(3)检索已加载资源映射表中是否存在查找到的外部资源url,若是则将查找到的外部资源url替换为与其对应的内部资源url,若否则进入步骤(4);(4)将查找到的外部资源url对应的外部资源复制到网页文档编辑器的内部存储设备中,确定其内部资源url,并将外部资源url以及与其对应的内部资源url添加到已加载资源映射表。

【技术特征摘要】

【专利技术属性】
技术研发人员:段垚
申请(专利权)人:明博教育科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1