将数据加载为.js文件与加载为JSON

sls*_*sdo 5 html javascript ajax performance json

我找不到任何现有页面,也许我没有使用正确的搜索关键字......

假设我正在为我的静态站点实现一个简单的JavaScript搜索引擎,我的可搜索内容(一个大文件)存储在一个文件中并在初始页面加载期间加载.

现在我可以通过两种方式加载内容文件:

1.内容存储在search_content.js文件中的Javascript变量中:

// Large js file
var content = {"pages": [ {"page": "..."}, {...}, ... ]};
Run Code Online (Sandbox Code Playgroud)

在我的HTML中,我使用以下方法加载:

<script src="search_content.js"></script>
Run Code Online (Sandbox Code Playgroud)

我的搜索引擎只会访问该content变量.

2.将可搜索的内容保存在JSON文件中search_content.json:

// Large json file
{"pages": [ {"page": "..."}, { ... } ... ]}
Run Code Online (Sandbox Code Playgroud)

并在页面加载后在我的搜索库中加载文件:

$.ajax({
  dataType: "json",
  url: url_to_my_json_file,
  data: data,
  success: success
});
Run Code Online (Sandbox Code Playgroud)

方法1可以在没有Web服务器的情况下运行,但除此之外,每种方法的区别,优点/缺点是什么?它们在性能方面是否相同?

mes*_*azs 1

我想说,当页面的初始渲染出现明显延迟时,后者可能会更好,因为这可以被视为延迟加载的一种方式。

从性能角度来看,第一个很可能更高效,但是感知性能可能是更重要的因素。

我想到另一件事,第二种方式不会污染全局范围,这可能是一个优势。