写微信API所遇到的问题

1.接口还没出来之前。

根据微信网页版的页面,自己做了页面,分成了两个页面,一个是登录之后的,一个是登录之前的。后来接口出来之后我师兄说要做成只有一个页面时,我就有点吓到了,想想都觉得难,后来用了JQ的hide();函数,觉得只要有方法,什么都变得很简单。

2.关于接口如何调用的问题。
在这个项目中大多都是用$.post();方法请求的,这样的话一般都发送的参数在我们地址栏里面就不会那么直接的看到,不过在Network那里还是可以看到的,在这里也可以知道请求都没有成功。并且可以知道请求后的返回值是什么,根据返回值就可以写请求成功之后的回调函数,做好下一步的工作。写微信API所遇到的问题
当用表单提交时,可以用var formdata = $(this).serialize();直接把参数放在formdata里面,这样子很方便,也不过写那么多的参数。
 
3.对于json的处理。
对于服务器返回的json数据,都是可以解析之后直接调用的,用 eval("("+data+")");就可以调用了,解析之后很方便,在回调函数里面就可以最直接调用。当返回的是json数组时,那就要多开一扇门啦,比如说message =  eval("("+data+")");如过我要获取message里面第一个数组中的age时,我就要这样子写message[0].age,而不是message.age,这个跟C语言有点像。
 
4.JS没反应怎么办?
有时候,写了JQ之后,发现自己写的JQ没反应,并且连登录都登录不上,那么肯定是自己写的JS文件中哪里出错了,这时就应该在控制台看一看,因为控制台会告诉你哪里出错了,这样子找出错误会更加容易,也比较准。
写微信API所遇到的问题
 
5.在JS文件中写语句,就是不执行。
这时候,我采取的方法就是打印,用console.log();也好,用alert();也行,目的都是一样的,就是找错误。不过我一般用alert();感觉这样子我可以知道这行代码是真的执行了。打印出来时,有时候是有内容的,而有的时候却是undefined。如果是undefined时,你就要想想到底是哪里出错了,然后追根到底,找出原因。有时候真的很纳闷时,就在嘴巴里念出来,这种方法给我的感觉不错,让我比较明确我的目的,知道了我哪里错,还有为什么我会错呢,那我错了之后该怎么办,一步一步,就会找出答案,然后再一个一个打印出来,就可以找到结果了。
 
6.做出一个功能时,其他功能就会遭到破坏。
这个问题是我在做API时经常遇到的问题,也是很正常的,要是不出bug还会觉得奇怪。
当在修改备注信息之后,想把好友列表重新刷新一遍,以显示最新的好友列表以及最新的备注,然而刷新之后,我发现我的好友多了一倍,后来发现是我直接用append();追加新列表,忘记了把原来的列表清空。清空之后每次刷新好友的数量就不会增加了。
 
7.关于定时向服务器发送请求的问题。
这个一开始也让我有点摸不着头脑,一开始我想到的方法就是写一个循环,然后在循环中写请求,后来发现不切实际,所以放弃了,百度之后,发现用window.setInterval("function()",5000);才是比较正确的选择,定时向服务器发出请求,然后在函数中写请求。关于定时请求这个,我在百度的时候发现了一种技术,叫做服务器推送技术。说着也巧,那时候本来想用服务器推送技术的,研究了一会,发现那是后台的东西,就问了一个师兄,师兄对这个东西也是没有了解,也没有听说,后来研究了一番,说这个东西不错,挺神奇的一个技术 。后台的小伙伴有兴趣可以研究一下,如果采用服务器推送技术的话,前台就不用定时向后台发送请求啦。
 
8.滚动条置底问题。
这个问题让我思考了好几天,说实话,真的很让人偷疼的一个事,不过现在好,已经解决了。一开始在网上百度,大家都说用scrollTop=scrollHeight;可是我试的时候却一直不行,我在想一定是自己哪里写错了,所以还是一直百度,实践,可是滚动条还是不理我。改了好几天,还是解决不了,就向师兄请教,后来才发现原来jQ没有scrollHeight这个属性,跟JQ是封装的有一定的关系,之后用了JS写,果真滚动条就乖乖置底了,瞬间,我觉得JS原来是多么有魅力呀,这个以后必须好好学。
 
9.关于配色问题。
关于配色问题,其实挺纠结的,说实话,以前都没有做过配色的工作,欣赏还是会的,不过当自己配起来的时候,还是觉得挺纠结的。在配色的时候我一直是在战酷还有懒人图库中看别人的例子,学习别人怎么配色,怎样看起来会比较舒服一点,好看一点。关于这个问题,我觉得还是需要多学习,多看看别人怎么配色,然后自己再尝试怎么去陪,多实践爱你,自然就会熟络起来。
 
10.对于动态生成的DOM设置事件。
对于动态生成的DOM,直接设置事件是不可能实现的,那么要怎么办呢?如果要设置事件,就必须做事件委托,在API中我一般是用on();函数,$(document).on(‘click‘,‘.child‘,function(){});/,$(‘.father‘).on(‘click‘,‘.child‘,function(){});都是可以的,这样子就可以对动态生成的DOM设置事件。
对动态生成的DOM设置css属性,正常情况下,css属性直接写就可以了,只要直接给动态生成的<div>或其他的添加相应的类或者id就可以了,不过我在做API的时候遇到一个问题(更换皮肤),就是当点击其他的连接时,改变另一个动态生成的<div>的css,这个我在做的时候还是很苦恼的,因为百度一直百度不到,后来我自己想了一种方法,就是设置一个全局变量,然后全局变量的值先设为blue,然后当在改变皮肤颜色时,就改变这个全局变量的值,而这个全局变量,就作为动态生成的<div>的类,然后在css中就相应设置不同的css。之后就能在点击更换皮肤的时候,动态生成的<div>的皮肤也跟着改变。
 
 
 

写微信API所遇到的问题,布布扣,bubuko.com

写微信API所遇到的问题

上一篇:微信推广功能支持图片广告和投放外链广告


下一篇:微信公众平台开发 - 动手篇。使用weinxinFundation开始一个微信公众平台的开发