发明内容
本发明提供一种文件生成方法、装置、电子设备及存储介质,以解决现有定位方法需要进行多次读取操作,造成浏览器的响应速度低的技术问题。
第一方面,本发明提供一种文件生成方法,所述方法包括:
根据用户请求获取目标字库;其中,所述用户请求包括:目标字体及多个目标文件格式,所述目标字库包括所述目标字体;
调用脚本使所述目标字库生成多个目标文件;其中,多个所述目标文件的文件格式与多个所述目标文件格式一一对应;
将所述多个目标文件写入第二存储介质。
可选地,在所述根据用户请求获取目标字库,之前包括:
从第三存储介质中读取全字库;
根据所述用户请求从所述全字库中提取所述目标字库。
可选地,所述从第三存储介质中读取全字库中,具体包括:
确定缓存是否存有所述全字库;
若确定所述缓存中存有所述全字库,则从所述缓存中读取所述全字库。
可选地,若确定所述缓存中没有所述全字库,则从磁盘中读取所述全字库。
可选地,在所述从第三存储介质中读取全字库,之后还包括:
将所述全字库写入所述缓存中。
第二方面,本发明提供一种文件生成装置,所述装置包括:
读取模块,用于根据用户请求获取目标字库;其中,所述用户请求包括:目标字体及多个目标文件格式,所述目标字库包括所述目标字体;
生成模块,用于调用脚本使所述目标字库生成多个目标文件;其中,多个所述目标文件的文件格式与多个所述目标文件格式一一对应;
写入模块,用于将所述多个目标文件写入第二存储介质。
可选地,所述装置还包括:提取模块;
所述读取模块还用于从第三存储介质中读取全字库;
所述提取模块用于根据所述用户请求从所述全字库中提取所述目标字库。
可选地,所述读取模块具体用于:
确定缓存是否存有所述全字库;
若确定所述缓存中存有所述全字库,则从所述缓存中读取所述全字库。
可选地,所述读取模块具体用于:
若确定所述缓存中没有所述全字库,则从磁盘中读取所述全字库。
可选地,所述写入模块还用于:
将所述全字库写入所述缓存中。
第三方面,本发明提供一种文件生成设备,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行第一方面及可选方案所涉及的文件生成方法。
第四方面,本发明提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行第一方面及可选方案所涉及的文件生成方法。
本发明实施例提供一种文件生成方法、装置、电子设备及存储介质,该方法包括:获取包含有目标字体的目标字库,再调用相应脚本使目标字库生成多种不同格式的目标文件,将多个目标文件写入第二存储介质。本发明提供的方法,在获得目标字库后,根据目标字库生成多个目标文件,将多个目标文件一同存入第二存储介质,减少IO口读写次数,提高浏览器响应速度。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
用户在使用浏览器时,发送生成不同格式的文件的用户请求,服务器为了响应用户请求,根据用户请求从磁盘中调取目标字库,调用相应的格式转换脚本,生成对应的格式文件,并依次存入磁盘中,再重复上述过程,以生成多种格式的文件。然而,现有的文件生成方法在生成多种格式文件时,需要进行多次读取操作,又由于读写操作比较费时,造成浏览器响应速率降低。
针对现有技术中问题,本发明提供一种文件生成方法、装置、电子设备及存储介质,以提高浏览器响应速度。
目前常用的文件格式有以下几种:
TTF:TTF(全称:TrueTypeFont)是Apple公司和Microsoft公司共同推出的字体文件格式,随着windows的流行,已经变成最常用的一种字体文件表示方式。
WOFF:Web开放字体格式(Web Open Font Format,简称:WOFF)是一种网页所采用的字体格式标准。
SVG:可缩放矢量图形(Scalable Vector Graphics,SVG)是网际网路联盟(WorldWide Web Consortium,简称:W3C)推出的基于XML的二维矢量图形标准。
EOT:一种压缩字库,目的是解决在网页中嵌入特殊字体的难题。EOT字体目前只有微软的IE浏览器支持。
图1为本发明根据一示例性实施例示出的***架构图。如图1所示,本发明提供的文件生成方法所基于的***包括:客户端设备101和服务器102。
其中,用户使用客户端设备101上浏览器浏览网页,客户端设备101向服务器发送用户请求,其中,用户请求中包括目标字体和多种文件格式。服务器102在接收到用户请求后,读取包含有目标字体的目标字库,并生成多种文件格式的目标文件,将目标文件的存储路径发送给客户端设备102,以使客户端根据上述存储路径再次发送用户请求,其中,再次发送的用户请求包含所要引用的目标文件的存储路径,服务器根据存储路径获得目标文件后,将目标文件发送给客户端设备,客户端设备在浏览器中相应页面上加载对应目标文件。
图2为本发明根据一示例性实施例示出的文件生成方法的流程图。如图2所示,本发明提供一种文件生成方法,该方法包括:
S201、根据用户请求获取目标字库。
更具体地,用户在使用浏览器浏览某个网页时,向服务器发出用户请求指令。其中,用户请求指令包括用户要求显示的目标字库以及浏览器支持的文件格式。
服务器根据用户请求获取目标字库,以便服务器对目标字库进行处理生成相应格式的文件。其中,目标字库包括用户请求中所请求的目标字体。
S202、调用脚本使目标字库生成多个目标文件。
更具体地,服务器在获得目标字库后,调用相应的脚本文件,以生成相应的目标文件。其中,多个目标文件的文件格式与多个目标文件格式一一对应。现举例说明:
用户请求生成TTF格式的目标文件和WOFF格式的目标文件,服务器在获得目标字库后,调用脚本文件,并在脚本文件的参数中设置生成TTF格式的文件和WOFF格式的文件,运行脚本,生成TTF格式的目标文件和WOFF格式的目标文件。
用户请求生成TTF格式、WOFF格式、SVG格式以及EOT格式的目标文件,服务器在获得目标字库后,调用脚本文件,并在脚本文件的参数中设置生成TTF格式的文件、WOFF格式的文件及EOT格式的文件,运行脚本,生成TTF格式、WOFF格式以及EOT格式的目标文件。再次调用脚本文件,并在脚本文件的参数中设置生成SVG格式的文件,调用脚本文件,生成SVG格式的目标文件。
S203、将多个目标文件写入第二存储介质。
更具体地,在获得多个目标文件后,将目标文件存入第二存储介质。其中,第二存储介质为磁盘。
下面详细说明文件生成方法的原理:服务器在接收到用户请求后,根据用户请求获取目标字库,再对目标字库进行处理,生成用户请求所要求的文件格式对应的目标文件,在利用目标字库生成多个目标文件过程中,不涉及利用IO接口对磁盘进行读写,而利用IO接口对磁盘读写是比较费时的,进而可以减少服务器的响应时间。
在本实施例提供的文件生成方法中,首先获取包含有目标字体的目标字库,再调用相应脚本,使目标字库生成多个不同格式的目标文件,最后将多个目标文件写入第二存储介质。本发明提供的文件生成方法,在获取目标字库后,根据目标字库生成多个目标文件,将多个目标文件一同存入第二存储介质,减少IO口读写次数,提高浏览器响应速度。
图3为本发明根据另一示例性实施例示出的文件生成方法的流程图。如图3所示,本发明提供的文件生成方法包括:
S301、确定缓存是否存有全字库。若确定缓存中存有全字库,则进入S302;否则,进入S303。
更具体地,全字库是指包含有全部汉字、全部英文字母以及其他特殊字符的数据库,全字库具有庞大的数据量。在本实施例中,若客户端设备第一次发送用户请求,在缓存中必然不存在全字库,需要通过IO接口从磁盘中读取。若客户端设备不是第一发送用户请求,全字库已经加入缓存中,则直接在缓存中读取全字库。
S302、从缓存中读取全字库,并进入S305。
更具体地,若客户端设备不是第一次发送用户请求,第三存储介质为缓存,直接从缓存中读取全字库。
S303、从磁盘中读取全字库。
更具体地,若客户端设备是第一次发送用户请求,第三存储介质为磁盘,则需要通过IO口从磁盘中读取全字库。
S304、将全字库写入缓存中。
更具体地,若客户端设备是第一次发送用户请求,则将全字库写入缓存中,以便接收下次用户请求时使用。
S305、根据用户请求从全字库中提取目标字库。
更具体地,相较于全字库的数据量,客户端设备所请求的目标字体的数量是有限,没有必要对全字库进行格式转换,因此,从全字库中提取包含有目标字体的目标字库。
S306至S308与图2所示实施例提供的文件生成方法中S201至S203相同,此处不再赘述。
下面详细说明本实施例提供的文件生成方法的工作原理:先确定缓存中是否存在全字库文件,若缓存中没有全字库文件,在获取全字库文件后,将全字库存入缓存,避免服务器在响应客户端设备的每一次请求时,都需要从磁盘读取全字库文件,在获取全字库后,再根据全字库生成目标字库,并根据目标字库生成多个不同格式的目标文件,在利用目标字库生成多个目标文件过程中,不涉及利用IO接口对磁盘进行读写,实现在两个环节减少了服务器处理时间,提高服务器响应速度。
在本实施例提供的文件生成方法中,若用户请求为第一次发起,则从磁盘中读取全字库后,直接将全字库存入缓存中,以便下次在利用全字库时直接从缓存中读取,若用户请求不为第一次发起,则直接从缓存中读取全字库。通过将全字库存入缓存,减少读取全字库时间,提高浏览器响应速度,提升用户体验。
图4为本发明根据又一示例性实施例示出的文件生成方法的流程图,如图4所示,本发明提供的文件生成方法,包括如下步骤:
S401、接收用户请求。
更具体地,服务器接收客户端的用户请求,例如:客户端请求的目标字体为“你好中国”,目标文件格式为TTF格式、WOFF格式、SVG格式以及EOT格式。
S402、确定缓存中是否存相应文件。
更具体地,服务器确定在缓存是否存在文件,文件包括目标字体,并且文件格式为目标文件格式。例如:确定缓存中是否存在TTF格式的文件、WOFF格式的文件、SVG格式的文件以及EOT格式的文件,上述文件中均包括“你好中国”。
S403、若确定缓存中存在目标文件格式对应的包含目标字体的文件,则直接输出目标文件在服务器中存储路径,否则,进入S404。
S404、确定缓存是否存有全字库。若确定缓存中存有全字库,则进入S405;否则,进入S406。
S405、从缓存中读取全字库,并进入408。
S406、从磁盘中读取全字库。
更具体地,若缓存中没有存储全字库,则通过IO接口从磁盘中读取全字库。
S407、将全字库写入缓存中。
S408、根据用户请求从全字库中提取目标字库。
更具体地,根据用户请求从全字库中提取包括目标字体的目标字库。例如:提取包含有“你好中国”的目标字库。
S409、根据用户请求获取目标字库。
更具体地,根据用户请求获取目标字库,例如:根据用户请求获取包含有“你好中国”的目标字库。
S410、调用脚本使目标字库生成多个目标文件。
更具体地,运行脚本,使目标字库生成多个目标文件。例如:服务器在获得包含有“你好中国”目标字库后,调用脚本文件,并在脚本文件的参数中设置生成TTF格式的文件、WOFF格式的文件及EOT格式的文件,运行脚本,生成TTF格式、WOFF格式以及EOT格式的目标文件。再次调用脚本文件,并在脚本文件的参数中设置生成SVG格式的文件,调用脚本文件,生成SVG格式的目标文件。
S411、将多个目标文件写入第二存储介质。
更具体地,将目标文件存入第二存储介质。其中,第二存储介质可以为磁盘。例如:将TTF格式、WOFF格式、SVG格式以及EOT格式的目标文件存入磁盘或者缓存中。
本实施例提供的文件生成方法,在获得目标字库后,根据目标字库生成多个目标文件,将多个目标文件一同存入第二存储介质,减少IO口读写次数,提高浏览器响应速度。
下面对文件生成装置进行介绍,其实现原理和技术效果与上述方法原理和技术效果类似,此处不再赘述。
图5为本发明根据一示例性实施例示出的文件生成装置的结构示意图。如图5所示,本发明提供一种文件生成装置,装置500包括:
读取模块501,用于根据用户请求获取目标字库;其中,用户请求包括:目标字体及多个目标文件格式,目标字库包括目标字体;
生成模块502,用于调用脚本使目标字库生成多个目标文件;其中,目标文件的文件格式与目标文件格式一一对应。
可选地,装置还包括:提取模块504;
读取模块501还用于从第二存储介质中读取全字库;
提取模块504用于根据用户请求从全字库中提取目标字库。
可选地,读取模块501具体用于:
确定缓存是否存有全字库;
若确定缓存中存有全字库,则从缓存中读取全字库。
可选地,读取模块具体用于:
若确定缓存中没有全字库,则从磁盘中读取全字库。
可选地,写入模块503还用于:
将全字库写入缓存中。
图6为本发明根据一示例性实施例示出的电子设备的结构示意图,如图6所示,本实施例提供的电子设备600包括:处理器601以及存储器602。
存储器602,用于存储计算机执行指令;
处理器601,用于执行存储器存储的计算机执行指令,以实现上述实施例中文件生成方法所执行的各个步骤。具体可以参见前述控制方法实施例中的相关描述。
可选地,上述存储器602既可以是独立的,也可以跟处理器601集成在一起。
当存储器602独立设置时,该电子设备还包括总线603,用于连接存储器602和处理器601。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上电子设备所执行的文件生成方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。