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

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

【发明内容】

[0017] 针对现有技术中存在的缺陷,本发明的目的在于提供一种网页文档编辑器中的资 源加载方法,解决网页文档编辑器资源加载过程中的外部资源url蔓延的问题。
[0018] 为实现上述目的,本发明采用的技术方案为:一种网页文档编辑器中的资源加载 方法,包括以下步骤:
[0019] (1)创建已加载资源映射表;所述的已加载资源映射表用于记录网页文档中已加 载的外部资源的外部资源url,以及将外部资源复制到网页文档编辑器的内部存储设备后 其对应的内部资源url;
[0020] (2)监视对待编辑网页文档的修改,查找修改后的文档内容中的外部资源url ;
[0021] (3)检索已加载资源映射表中是否存在查找到的外部资源url,若是则将查找到的 外部资源url替换为与其对应的内部资源url,若否则进入步骤(4);
[0022] (4)将查找到的外部资源url对应的外部资源复制到网页文档编辑器的内部存储 设备中,确定其内部资源url,并将外部资源url以及与其对应的内部资源url添加到已加 载资源映射表。
[0023] 进一步,如上所述的一种网页文档编辑器中的资源加载方法,该方法还包括:
[0024] 创建正在加载的资源集合,该集合的元素是正在加载的外部资源的外部资源url。
[0025] 进一步,如上所述的一种网页文档编辑器中的资源加载方法,在步骤(4)之前,该 方法还包括:
[0026] 查看查找的外部资源url是否存在于所述的正在加载的资源集合中,若否则将该 外部资源url添加到正在加载的资源集合中,并进入步骤(4),若是则放弃该外部资源url 对应的外部资源的复制。
[0027] 进一步,如上所述的一种网页文档编辑器中的资源加载方法,步骤(4)中,将查找 到的外部资源url对应的外部资源复制到页
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1