发表于: 2017-06-21 21:54:39
1 892
今天完成的事情:
1、进行UI自检。
2、codereview之后修改代码中不合理的地方。
明天计划的事情:
1、完成demo,准备之后的内容。
2、打好基础,加深对基础知识的理解,每天抽点时间看之前买的书。
遇到的问题:
1、html中的class类名采用了小驼峰法来写,应该采用-连接的。于是又去学习了下代码书写规范及要求。
2、代码中很多书写过程中的console.log()信息,导致在codereview的时候需要全部删掉。看来在实现功能之后,这些信息就都可以删掉了,不用等到最后一起处理。
收获:
1、如何用js循环发送ajax请求:如同下面这个代码:因为ajax是异步的,所以没有办法使得每一个i值对应一个ajax请求,会导致循环先执行完毕。无法做到一一对应。
- for(var i=0; i<items.length; i++){
- api_url = items[i].url;
- console.log(i);
- $.ajax({
- type: 'get',
- url: api_url,
- dataType: "json",
- async: false,
- success: function(json){
- console.log("test");
- var img = json.img;
- },
- error: function(data){
- }
- });
- }
所以采用了以下的代码:采用递归的方式,只有在ajax请求成功之后才会再次请求,保证数据能一一对应,而且顺序不会乱,在复盘项目中的推荐公司部分就采用了这种思路,根据公司ID来请求公司详情,并按请求的顺序输出,由于angualr中的$http请求是异步的,没有办法使得输出的顺序正好对应,所以采用了递归的写法。但是个人感觉这种方法不是很好,应该还有更好的办法来实现。
- currentIndex = 0;
- function getImg(){
- if(currentIndex>=items.length){
- return;
- }
- var url = item[url];
- console.log(i);
- $.ajax({
- type: 'get',
- url: url,
- dataType: "json",
- async: false,
- cache: true,
- success: function(json){
- currentIndex++;
- console.log("test");
- var img = json.img;
- getImg();
- },
- error: function(data){
- console.log("error...");
- currentIndex++;
- getImg();
- }
- });
- }
评论