通过版本控制管理不常更新的数据
例如博客的所有文章类型和所有文章,在没有新增文章的情况下这些数据是没必要每次请求都返回的。
可以把这些数据生成为js,在里边声明为const常量,这样就可以像静态文件一样避免重复请求了。
下面是一个小例子 catgegories.js
// categories.js
const categories = {
"categories": ["a", "b", "c", "ddd"]
};
// 将categories对象暴露给全局作用域
window.categories = categories;
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body><h1>HTML 标签</h1>HTML 标签用于定义 HTML 文档中的不同部分。
<ul id="category-list">
<!-- 这里将动态添加 <li> 标签 -->
</ul>
</body>
<script src="categories.js"></script>
<script>
// 监听 categories.js 加载完成
document.addEventListener('DOMContentLoaded', () => {
// 确保 categories 对象已定义
if (typeof window.categories!== 'undefined' && window.categories.categories) {
// 获取 <ul> 元素
const categoryList = document.getElementById('category-list');
// 遍历 categories 数组
window.categories.categories.forEach(category => {
// 创建 <li> 元素
const listItem = document.createElement('li');
// 设置 <li> 元素的文本内容
listItem.textContent = category;
// 将 <li> 元素添加到 <ul> 元素中
categoryList.appendChild(listItem);
});
} else {
console.error('categories 对象未定义或缺少 categories 属性');
}
});
</script>
</html>
gen_json_data_js.py
import json
def gen_json_data_js(const_value_name, data, file_name):
js_data = '''
// categories.js
const {0} = {1};
// 将categories对象暴露给全局作用域
window.categories = categories;
'''.format(const_value_name, json.dumps(content))
file = open(file_name, "w", encoding="utf-8")
file.write(js_data)
file.close()
if __name__ == '__main__':
categories = ["a", "b", "c", "ddd"]
content = { "categories": categories }
gen_json_data_js("categories", content, "categories.js")