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

时间:2015-02-12 19:49:12

标签: javascript html ajax json performance

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

说我为我的静态网站实现了一个简单的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服务器的情况下运行,但除此之外,每种方法的区别,优点/缺点是什么?它们在性能方面是否相同?

3 个答案:

答案 0 :(得分:1)

我认为当页面的初始渲染有明显的延迟时,后者会更好,因为这可以被认为是一种延迟加载的方式。

性能方面,第一个可能更有效率,但感知性能可能是更重要的因素。

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

答案 1 :(得分:0)

您可能想看一下这篇文章Using JSON to Exchange Data

答案 2 :(得分:0)

由于您正在加载数据,因此使用数据格式似乎是正确的,而不是代码。通过使用JSON而不是JS代码,您可以限制可能的失败范围。即使数据无法解析,页面本身也不会受到影响,只有搜索不起作用。所以JSON方法更安全。

由于可能不需要显示初始页面的数据,因此将异步加载似乎是正确的,这样它就不会延迟加载页面。脚本标记将推迟加载页面,除非您将其放在HTML的末尾。