我在一个大项目中工作,它有很多形式,并且形式有很多元素。
性别区分只有4个选项,然后将其设置为:(我将所有值立即发送到视图中)
$('#gender').select2();
客户案例具有993324选项,然后将其设置为:(通过Ajax查询远程数据)
$('#client').select2({
ajax: {
url: 'url/to/myclients',
dataType: 'json'
...
}
});
我还有其他具有100、300、5000、10000、50000 ..的对象,我不知道是否将所有数据发送到我的视图或使用ajax查询远程数据?
正确的工作方式是什么?为了不影响观看速度或使其难以使用。
答案 0 :(得分:0)
权限是不使用所有可能的响应填充选择,而是将其保留为空,并在用户键入时使用Ajax获取响应在搜索输入中。
例如,客户端select2,将其加载为空,当用户开始输入select2搜索(onChange)时,进行ajax调用,将该输入值发送到服务器,然后服务器在数据库中查询可能的行具有输入值并返回json,然后填充select2。
您可以玩多少次或何时触发ajax提取,例如,仅当用户写了3个以上字符时触发,在查询之间等待几秒钟等等。>
您还可以设置服务器查询的限制,因此,即使它们输入的名称很常见(例如John),它也只返回X值,而并非所有带有John的数千个客户端名称。