【问题标题】:Good or bad idea : load database as a separate .js file好主意或坏主意:将数据库加载为单独的 .js 文件
【发布时间】:2011-05-03 18:07:51
【问题描述】:

我有一个网页,您可以在其中自定义您的游戏角色。为了加快浏览(gems)的速度,我将整个 gems 数据库(600 个条目,247KB)加载为一个单独的 .js 文件,这样它就可以被缓存,我不需要每次都加载它。

我没有注意到延迟,这仍然是个坏主意吗?
我应该改为即时获取必要的记录吗?

仅供参考:我使用 ASP.NET MVC 2.0,这里正在加载脚本:

<script type="text/javascript" src='./Data.aspx/Gems'></script>

下面是动作:

[OutputCache(Duration = 14400, VaryByParam = null)]
public ActionResult Gems() {...}

编辑:我主要关心的不是加载时间,而是内存使用情况。浏览器加载/解析额外的 250KB javascript 是否会产生显着影响?

【问题讨论】:

  • 您需要获取 600 条记录中的多少条记录以及多久获取一次?
  • 每次用户访问页面时都会使用 Gems 数据库(网站是单页站点)。在 600 个用户中使用 20-50

标签: javascript large-data


【解决方案1】:

我觉得这是个好主意。另外,如果您需要“升级” GEMS 数据库,您可以加载带有版本标签的脚本,例如

 <script type="text/javascript" src='./Data.aspx/Gems?v=1232'></script>

如果需要,v=123 将强制用户下载新版本。

【讨论】:

    【解决方案2】:

    我假设该页面在脚本完全加载之前无法运行,但为了让页面感觉更快,您应该load the javascript at the bottom of the page

    【讨论】:

    • 这是非常有争议的,并且有更好的技术涉及动态脚本生成。谨慎行事。
    【解决方案3】:

    将数据嵌入为脚本将导致浏览器暂停页面加载,直到脚本文件被下载和解析。

    如果您使用 ajax 获取静态脚本或数据文件,浏览器应将其缓存为内联脚本,因此使用 ajax 没有任何缺点,您不必担心会减慢页面加载。

    【讨论】:

    • 种方法可以使这个非阻塞,它不必停止。
    • @annakata,你能指出一个非阻塞
    • Google 处理 adcells 的方式是非阻塞 iirc。我在这里得到了另一个问题的答案,它深入探讨了这个问题,但如果我能找到它,那该死的。我会尽快回复你。
    猜你喜欢
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 2019-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多