清除 JS 响应
Clearing JS response
我正在调用一个API。API 返回结果列表。当它这样做时 - 响应被馈送到一个对象中,然后我用它来迭代和显示它们。
这是执行此操作的函数:
var getAvailability = () => {
if (chosenData.hotel == "") {
showError("Please select a location before booking.");
$timeout(() => LTBNavService.setTab('location'), 50);
return;
}
searchResponse = {};
console.log(searchResponse);
WebAPI.getHotelAvailability(genSearchObject()).then((data) => {
searchResponse = data;
$timeout(() => $('[data-tab-content] .search-btn').first().focus(), 50);
generateRoomTypeObject(searchResponse);
}, (data) => searchResponse.error = data.data.errors[0].error);
};
问题:在新的结果集可用之前,仍会显示旧结果。这会导致闪烁和延迟,这是一种糟糕的用户体验。
解决方案:(我需要帮助)处理此问题的最佳方法是什么?理想情况下,我想重置/清除搜索响应。例如,交付新结果并清除旧结果。这可以从 getAvailability 函数中实现吗?
实现这一目标的最佳方法是什么?
解决方案:
感谢 @Daniel Beck建议调用 generateRoomTypeObject 函数并为其提供空对象 - +1 他的评论。
这在我的 generateRoomTypeObject 函数中触发了一个未定义的错误,我在其中运行了一些长度检查(有意义,因为对象是空的 - 所以没有什么可以做的长度检查)。
我通过处理未定义的异常并将 searchResponse 设置为空对象来处理错误。
var generateRoomTypeObject = (searchResponse) => {
var ratePlans = searchResponse.ratePlans,
errors = searchResponse.error,
roomTypes = [],
ignoreBiggerRooms = false;
rawRoomsObjs = [];
if (angular.isUndefined(errors)) {
// Iterate over the rate plan
if(ratePlans === undefined){
//generateRoomTypeObject -- Handle undefined by creating new object
searchResponse = {}
}else{
for (var i = 0; i < ratePlans.length; i++) {
var ratePlan = ratePlans[i],
rooms = ratePlan.rooms;
// Iterate over the rooms and add rooms to room object. Also keep a list of room types.
for (var j = 0; j < rooms.length; j++) {
//Stuff here
}
}
}
}
相关文章:
- 预期响应包含一个对象,但在angular js中得到一个数组错误
- 使Intro.js工具提示响应
- angular.js我如何设置数据什么是响应值
- Ember.js:将Em.$.getJSON转换为promise并将响应绑定到控制器上下文的正确方法
- D3.js:将一个有响应的饼图放在其父分区的中心
- 使用Backbone.js访问JSON响应的部分
- 引导:响应式设计-当窗口大小从980px调整到979px时执行JS
- 为什么新js Fetch标准禁止响应头名称为'设置Cookie 1/2'
- JS-通用解析JSON响应
- 分析angular.js中的JSONP$http.json()响应
- Rails 4远程true和响应js
- 为什么我的rails应用程序在生产环境中没有正确响应.js格式
- 如何使用响应式iframes使iframe响应.js
- 如何在没有 Web 服务器的情况下做出响应.js工作
- 响应.js将首选媒体查询而不是稍后定义的全局选择器
- IE8 支持使用响应.js进行媒体查询
- ie8响应js'未定义'为null或不是对象
- mobilesafari 5在下一次行动之前没有响应js事件
- 命令按钮不响应JS函数
- 如何在向第三方 API 节点发出多个请求后发送响应.js.