mirror of
https://github.com/pyecharts/pyecharts.git
synced 2025-12-08 20:59:23 +00:00
🐎 major speed improvement for browser loading. all javascript files are local in render.html. NO more fetching from the cloud. It works when you do NOT have INTERNET access.
This commit is contained in:
parent
7b9d744f19
commit
34076fcda3
@ -1,3 +1,4 @@
|
||||
include README.md
|
||||
include changelog.md
|
||||
include pyecharts/templates/*.html
|
||||
include pyecharts/templates/js/*.js
|
||||
|
||||
@ -422,6 +422,7 @@ class Base(object):
|
||||
my_option = json.dumps(self._option, indent=4, ensure_ascii=False)
|
||||
tmp = self._jinja2_env.get_template(temple)
|
||||
html = tmp.render(myOption=my_option, myWidth=self._width, myHeight=self._height)
|
||||
html = template.freeze_js(html)
|
||||
if PY2:
|
||||
html = html.encode('utf-8')
|
||||
with open(path, "w+") as fout:
|
||||
|
||||
@ -1,6 +1,38 @@
|
||||
#!/usr/bin/env python
|
||||
#coding=utf-8
|
||||
import os
|
||||
import re
|
||||
|
||||
|
||||
JS_PATTERN = re.compile(r'<!-- build -->(.*)<!-- endbuild -->',
|
||||
re.IGNORECASE | re.MULTILINE | re.DOTALL)
|
||||
JS_SRC_PATTERN = re.compile(r'src=\"(.*?)\"')
|
||||
|
||||
|
||||
def freeze_js(html_content):
|
||||
matches = JS_PATTERN.finditer(html_content)
|
||||
|
||||
if not matches:
|
||||
return html_content
|
||||
|
||||
for match in reversed(tuple(matches)):
|
||||
# JS file block
|
||||
src_matches = JS_SRC_PATTERN.findall(match.group(1))
|
||||
|
||||
js_content = ""
|
||||
for src in src_matches:
|
||||
file_path = os.path.join(get_resource_dir('templates'), src.strip())
|
||||
|
||||
with open(file_path, "r") as f:
|
||||
js_content += f.read() + '\n'
|
||||
# Replace matched string with inline JS
|
||||
fmt = '<script type="text/javascript">{}</script>'
|
||||
js_content = fmt.format(js_content)
|
||||
html_content = (html_content[:match.start()] + js_content +
|
||||
html_content[match.end():])
|
||||
|
||||
return html_content
|
||||
|
||||
|
||||
_mapindex = {
|
||||
"安徽": "anhui: '//oog4yfyu0.bkt.clouddn.com/anhui'",
|
||||
|
||||
1
pyecharts/templates/js/get.sh
Normal file
1
pyecharts/templates/js/get.sh
Normal file
@ -0,0 +1 @@
|
||||
curl http://oog4yfyu0.bkt.clouddn.com/$1.js -o $1.js
|
||||
@ -4,44 +4,46 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>ECharts</title>
|
||||
<script src="http://oog4yfyu0.bkt.clouddn.com/echarts.min.js"></script>
|
||||
<script src="http://oog4yfyu0.bkt.clouddn.com/echarts-gl.js"></script>
|
||||
<script type="text/javascript " src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/china.js"></script>
|
||||
<script type="text/javascript " src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/world.js"></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/wordcloud.js"></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/anhui.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/aomen.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/beijing.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/chongqing.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/fujian.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/gansu.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/guangdong.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/guangxi.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/guizhou.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/hainan.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/hebei.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/heilongjiang.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/henan.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/hubei.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/hunan.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/jiangsu.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/jiangxi.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/jilin.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/liaoning.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/neimenggu.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/ningxia.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/qinghai.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/shandong.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/shanghai.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/shanxi.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/sichuan.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/taiwan.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/tianjin.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/xianggang.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/xinjiang.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/xizang.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/yunnan.js "></script>
|
||||
<script type="text/javascript " src="http://oog4yfyu0.bkt.clouddn.com/zhejiang.js "></script>
|
||||
<!-- build -->
|
||||
<script src="js/echarts.min.js"></script>
|
||||
<script src="js/echarts-gl.js"></script>
|
||||
<script type="text/javascript " src="js/china.js"></script>
|
||||
<script type="text/javascript " src="js/world.js"></script>
|
||||
<script type="text/javascript " src="js/wordcloud.js"></script>
|
||||
<script type="text/javascript " src="js/anhui.js "></script>
|
||||
<script type="text/javascript " src="js/aomen.js "></script>
|
||||
<script type="text/javascript " src="js/beijing.js "></script>
|
||||
<script type="text/javascript " src="js/chongqing.js "></script>
|
||||
<script type="text/javascript " src="js/fujian.js "></script>
|
||||
<script type="text/javascript " src="js/gansu.js "></script>
|
||||
<script type="text/javascript " src="js/guangdong.js "></script>
|
||||
<script type="text/javascript " src="js/guangxi.js "></script>
|
||||
<script type="text/javascript " src="js/guizhou.js "></script>
|
||||
<script type="text/javascript " src="js/hainan.js "></script>
|
||||
<script type="text/javascript " src="js/hebei.js "></script>
|
||||
<script type="text/javascript " src="js/heilongjiang.js "></script>
|
||||
<script type="text/javascript " src="js/henan.js "></script>
|
||||
<script type="text/javascript " src="js/hubei.js "></script>
|
||||
<script type="text/javascript " src="js/hunan.js "></script>
|
||||
<script type="text/javascript " src="js/jiangsu.js "></script>
|
||||
<script type="text/javascript " src="js/jiangxi.js "></script>
|
||||
<script type="text/javascript " src="js/jilin.js "></script>
|
||||
<script type="text/javascript " src="js/liaoning.js "></script>
|
||||
<script type="text/javascript " src="js/neimenggu.js "></script>
|
||||
<script type="text/javascript " src="js/ningxia.js "></script>
|
||||
<script type="text/javascript " src="js/qinghai.js "></script>
|
||||
<script type="text/javascript " src="js/shandong.js "></script>
|
||||
<script type="text/javascript " src="js/shanghai.js "></script>
|
||||
<script type="text/javascript " src="js/shanxi.js "></script>
|
||||
<script type="text/javascript " src="js/sichuan.js "></script>
|
||||
<script type="text/javascript " src="js/taiwan.js "></script>
|
||||
<script type="text/javascript " src="js/tianjin.js "></script>
|
||||
<script type="text/javascript " src="js/xianggang.js "></script>
|
||||
<script type="text/javascript " src="js/xinjiang.js "></script>
|
||||
<script type="text/javascript " src="js/xizang.js "></script>
|
||||
<script type="text/javascript " src="js/yunnan.js "></script>
|
||||
<script type="text/javascript " src="js/zhejiang.js "></script>
|
||||
<!-- endbuild -->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user