我无法在此找到任何现有页面,也许我没有使用正确的搜索关键字......
说我为我的静态网站实现了一个简单的JavaScript搜索引擎,我的可搜索内容(一个大文件)存储在一个文件中,并在初始页面加载期间加载。
现在我可以通过两种方式加载内容文件:
1。内容存储在search_content.js
文件的Javascript变量中:
// Large js file
var content = {"pages": [ {"page": "..."}, {...}, ... ]};
在我的HTML中,我使用
加载它<script src="search_content.js"></script>
我的搜索引擎只会访问content
变量。
2. 将可搜索的内容保存在JSON文件中search_content.json
:
// Large json file
{"pages": [ {"page": "..."}, { ... } ... ]}
在页面加载后将文件加载到我的搜索库中:
$.ajax({
dataType: "json",
url: url_to_my_json_file,
data: data,
success: success
});
方法1可以在没有Web服务器的情况下运行,但除此之外,每种方法的区别,优点/缺点是什么?它们在性能方面是否相同?
答案 0 :(得分:1)
我认为当页面的初始渲染有明显的延迟时,后者会更好,因为这可以被认为是一种延迟加载的方式。
性能方面,第一个可能更有效率,但感知性能可能是更重要的因素。
我想到另一件事,第二种方式不会污染全球范围,这可能是一个优势。
答案 1 :(得分:0)
您可能想看一下这篇文章Using JSON to Exchange Data
答案 2 :(得分:0)
由于您正在加载数据,因此使用数据格式似乎是正确的,而不是代码。通过使用JSON而不是JS代码,您可以限制可能的失败范围。即使数据无法解析,页面本身也不会受到影响,只有搜索不起作用。所以JSON方法更安全。
由于可能不需要显示初始页面的数据,因此将异步加载似乎是正确的,这样它就不会延迟加载页面。脚本标记将推迟加载页面,除非您将其放在HTML的末尾。