在此railscast我们的好朋友贝茨先生介绍了创建可以搜索,排序和分页一组数据的应用程序的解决方案。在进行AJAX搜索时,他提供的解决方案将在用户输入搜索框时显示搜索结果。这是他的解决方案:
$('#products_search input').keyup(function () {
$.get($('#products_search').attr('action'), ↵
$('#products_search').serialize(), null, 'script');
return false;
});
然而他说:“请注意,这只是一个快速的演示,并不是最好的方法。如果你在生产应用程序中做这样的事情,你可以使用几个jQuery插件。”我正在寻找他为什么认为这不适合生产的解释。提前谢谢!
答案 0 :(得分:1)
我在这个解决方案中看到了两个主要问题。第一个是每次按下一个键时都要发出一个HTTP(AJAX)请求,这不是最有效的方法。第二个是你基本上在响应中调用eval
,eval
是坏的,因为它可能导致恶意用户执行你不想执行的代码。
关于改进的一些建议: