【发布时间】:2015-09-19 15:36:53
【问题描述】:
在单页应用中专业处理复杂的MySql数据库最好的方法是什么?
我通常使用jQuery ajax从数据库中获取数据,但是在将数据检索到浏览器时似乎太慢了。
当我使用keydown 行为从数据库中获取值时,总是会发生这种情况,当我根据change 上的另一个下拉值更改 PHP 文件中的下拉菜单值时,例如国家 > 城市
我的代码是这样的:
JS
input.keydown(function(){
var val = $(this).value()
$.ajax({ type: "GET",
url: "results.php",
data: form.serialize(),
async: false,
success : function(data)
{
$('.results').append(data);
}
})
}
});
如果我有一个复杂的查询,这有时会使浏览器冻结片刻。
我应该使用 Ajax 吗?或者尝试使用其他框架,如 Angular.js 甚至 Backbone?
请指教。
【问题讨论】:
-
那些框架仍将使用 ajax。
slow的具体问题是什么?还要定义慢在时间价值上的含义 -
我怀疑你的瓶颈在于你的 SQL 查询——所以改变你的数据检索方法可能对你没有多大帮助。如果您的数据不是关系型数据,那么使用 MongoDB 等非关系型数据库可能更有意义
-
这个问题需要改进。例如,这是我的查询、模式和天哪,任何人都可以帮我加快速度吗
-
@Drew 问题已经改进
-
将 async 设置为 false 是阻止浏览器的原因。我会在页面加载或操作时以块的形式获取并存储所有这些值。例如,在页面加载时返回所有国家,然后当有人选择一个国家时,调用城市并将它们保存在本地。每次按键都点击服务器将对您的服务器/数据库造成极大的负担。但要回答你的问题,我会推荐 AngularJS,但我也听说过 React 的好消息。
标签: jquery mysql ajax angularjs backbone.js