繁体   English   中英

JSON与多个连接

[英]JSON vs multiple connections

我目前正在建立一个搜索外部数据库并显示与给定搜索字符串匹配的记录的网站。 搜索是实时的,因此在用户键入时会显示结果。

现在,我采用的第一个(也是当前的)方法是该页面实际上连接到mySQL服务器并通过AJAX检索内容,用户在搜索框中键入每个字母。

现在,我开始研究JSON对象(我只是最近才开始建立网站),并且想知道将整个数据库从一开始加载到JSON对象中,然后在搜索时仔细检查是否是一个好主意。

这是一个好主意吗? 会更快吗? 提前致谢

它完全取决于数据的大小和查询的复杂性。 如果您可以事先合理地将数据发送到客户端,然后在本地搜索,那么可以肯定,这很有用,因为它全部是本地的,并且没有查询服务器的延迟。 但是,如果您有大量数据,或者查询很复杂,那么在服务器上执行查询可能更有意义。

没有一种万能的解决方案,它取决于数据。

...并通过AJAX检索内容,用户在搜索框中输入每个字母。

这通常是过大的。 通常,您要等到用户键入暂停后再触发ajax调用,这样,如果他们快速连续键入“ james”,则搜索“ james”而不是搜索“ j”,然后搜索“ ja” ”,然后是“ jam”,然后是“ jame”,然后是“ james”。

例如,假设您的搜索触发器是一个keypress事件。 这将是一个相当普遍的方法:

var keypressTimer = 0;
function handleKeypress() {
    if (keypressTimer) {
        cancelTimeout(keypressTimer);
    }
    keypressTimer = setTimeout(doSearch, 100); // 100ms = 1/10th of a second
}
function doSearch() {
    var searchValue;

    keypressTimer = 0;
    searchValue = /*...get the search value...*/;
    doAjaxCallUsing(searchValue);
}

这称为“反跳”输入(来自硬件工程,与按键按下时的机械和电气“反跳”有关)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM