答案 0 :(得分:3)
您好,您可以创建JSON对象 对于所有细节,基于所选的值,您可以循环数组并填充值。让我
var cardetail = [{
"name": "MARUTI",
"model": [{
"name": "SWIFT",
"year": ["2005", "2006", "2008"]
}, {
"name": "ALTO",
"year": ["2009", "2010", "2011"]
}]
}, {
"name": "Hundai",
"model": [{
"name": "I20",
"year": ["2011", "2012", "2013"]
}, {
"name": "I20",
"year": ["2013", "2014", "2015"]
}]
}];
var currentCumpany = null;
var currentModel = null;
$(document).ready(function() {
$("#company").append("<option value=''>Select Company</option>");
for (i = 0; i < cardetail.length; i++) {
$("#company").append("<option value='" + cardetail[i].name + "'>" + cardetail[i].name + "</option>");
};
$("#company").change(function() {
for (i = 0; i < cardetail.length; i++) {
if (cardetail[i].name == $("#company").val()) {
currentCumpany = cardetail[i];
}
};
$("#model").html("");
for (i = 0; i < currentCumpany.model.length; i++) {
$("#model").append("<option value='" + currentCumpany.model[i].name + "'>" + currentCumpany.model[i].name + "</option>");
};
});
$("#company").change(function() {
for (i = 0; i < cardetail.length; i++) {
if (cardetail[i].name == $("#company").val()) {
currentCumpany = cardetail[i];
}
};
$("#model").html("");
for (i = 0; i < currentCumpany.model.length; i++) {
$("#model").append("<option value='" + currentCumpany.model[i].name + "'>" + currentCumpany.model[i].name + "</option>");
};
});
$("#model").change(function() {
for (i = 0; i < currentCumpany.model.length; i++) {
if (currentCumpany.model[i].name == $("#model").val()) {
currentModel = currentCumpany.model[i];
}
};
$("#year").html("");
for (i = 0; i < currentModel.year.length; i++) {
$("#year").append("<option value='" + currentModel.year[i] + "'>" + currentModel.year[i] + "</option>");
};
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="company"></select>
<select id="model"></select>
<select id="year"></select>
答案 1 :(得分:1)
首先,除非必要的带宽过于昂贵,否则您可以想象检查缓存,然后在用户选择一年并缓存它时立即(甚至在此之前)开始请求流行的品牌/模型/子模型。现在浏览器甚至还有一个完整的RDBMS(完全披露:它的新内容,我还没玩过它),它位于indexDB之上。
在挑选哪些预加载方面,您可以根据生产的单位,销售的单位,汽车和驾驶员杂志排名,数据挖掘您的实际用户&#39;请求,等等。
我认为从用户体验的角度来看,你至少应该缓存用户实际发出的请求,并提供加载选项,以便直接跳回到他们搜索的去年/ make / model而不是让他们每次访问都进入新鲜。预装大众汽车只会让事情变得更容易。您希望通过预测分析特定用户可能搜索的内容来达到您的团队技能/预算/时间限制。
我意识到这本身并不是完整的答案,我不确定问题是否有一个(例如&#39;使用此策略/框架/库而你所有的问题都会神奇地消失!它甚至会制作出一个julienned fries!&#39;)。但是如果遇到这种问题,我首先想到的是如何更快地将更多(希望是相关的)数据提供给客户 ,这有望转化为更快(在UX意义上)快速的。)
我还建议您在json文件中使用该流行数据进行请求,而不是每次都必须访问Rails / ActiveRecord / Database服务器。仅这一点就可以减少响应时间的宝贵时间(更不用说那些机器上的使用负载)。
它不像数据真的发生了变化,2009年的丰田Rav 4与2009年的规格相同。