1.接口还没出来之前。

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

2.关于接口如何调用的问题。
在这个项目中大多都是用$.post();方法请求的,这样的话一般都发送的参数在我们地址栏里面就不会那么直接的看到,不过在Network那里还是可以看到的,在这里也可以知道请求都没有成功。并且可以知道请求后的返回值是什么,根据返回值就可以写请求成功之后的回调函数,做好下一步的工作。
当用表单提交时,可以用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文件中哪里出错了,这时就应该在控制台看一看,因为控制台会告诉你哪里出错了,这样子找出错误会更加容易,也比较准。
 
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所遇到的问题的更多相关文章

  1. 面向对象的全套“企业微信”api接口的代码实现,网上太多“面向过程”微信api接口的代码,这个开源给需要的人用

    有段时间没有写文章了. 一直以来,微信的热门是看得到的,很多人都需要与微信的api对接. 今天我这里就分享全套的企业微信api接口的代码. 关于微信api,网上已经有很多实现的了. 但是我今天之所以还 ...

  2. 使用delphi+intraweb进行微信开发5—准备实现微信API,先从获取AccessToken开始

    在前4讲中我们已经使iw开发的应用成功和微信进行了对接,再接下来的章节中我们开始逐一尝试和实现微信的各个API,开始前先来点准备工作 首先需要明确的是,微信的API都是通过https调用实现的,分为p ...

  3. 总结的一些微信API接口

    本文给大家介绍的是个人总结的一些微信API接口,包括微信支付.微信红包.微信卡券.微信小店等,十分的全面,有需要的小伙伴可以参考下. 1. [代码]index.php <?php include ...

  4. 微信api退款操作

    状况:证书加载进去,本地调试退款成功,然而发不到iis上却是不成功. 分析:定然是iis配置问题. 问题一:证书加载不进去,出现“内部错误” 解决:在iis中找到对应的应用连接池,右键高级设置,找到“ ...

  5. C# 数字证书微信API调用使用参考事例

    X.509 v.3 证书的方法.一个比较完整的调用  微信  API的示例: private stringGetResponseResult()         { string strRespons ...

  6. 一个用得比较广的微信API的XXE外部实体注入漏洞

    文件地址: https://github.com/dodgepudding/wechat-php-sdk/raw/master/wechat.class.php 代码: <?php /** * ...

  7. 像VUE一样写微信小程序-深入研究wepy框架

    像VUE一样写微信小程序-深入研究wepy框架 微信小程序自发布到如今已经有半年多的时间了,凭借微信平台的强大影响力,越来越多企业加入小程序开发. 小程序于M页比相比,有以下优势: 1.小程序拥有更多 ...

  8. mongose + express 写REST API

    一.准备工具 先确保电脑已经安装好nodejs 1.mongoose:安装非常简单: npm install mongoose --save   [mongoose封装了mongodb的方法,调用mo ...

  9. Django使用AJAX调用自己写的API接口

    Django使用AJAX调用自己写的API接口 *** 具体代码和数据已上传到github https://github.com/PythonerKK/eleme-api-by-django-rest ...

随机推荐

  1. [JSOI2007]重要的城市 floyd:最短路计数

    ---题面--- 题解: 其实感觉还是比较妙的,第一眼看题想到floyd统计最短路条数, 注意到对于任意两点x,y而言,floyd将会枚举其最短路所可能经过的所有中转点, 因此我们可以直接分别统计对于 ...

  2. Android 常用控件自定义样式RadioButton、CheckBox、ProgressBar、

    一.RadioButton / CheckBox 系统自带的RadioButton/CheckBox的样式,注定满足不了实际运用中的情况,有时候自定义自己的样式:此次把自己中工作学习过程中所学到的东西 ...

  3. 【DP】【P2224】】【HNOI2001】产品加工

    传送门 Description 某加工厂有\(A\).\(B\)两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成.由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时 ...

  4. Java HashMap工作原理及实现?

    参考:http://yikun.github.io/2015/04/01/Java-HashMap%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86%E5%8F%8A%E5%AE ...

  5. RabbitMQ 作用

    1.RabbitMQ 作用 同步变异步 解耦 削峰 2.

  6. Android 自定义ListView实现底部分页刷新与顶部下拉刷新,androidlistview

    在项目开发中,由于数据过大时,需要进行分页加载或下拉刷新,来缓解一次性加载的过长等待.本篇博文实例讲解通过自定义的ListView实现底部分页加载和顶部下拉刷新的效果. 其效果图: 一.ListVie ...

  7. JS鼠标滚轮事件解析

    一.不同浏览器的鼠标滚轮事件 首先,不同的浏览器有不同的滚轮事件.主要是有两种,onmousewheel(IE/Opera/Chrome支持,firefox不支持)和DOMMouseScroll(只有 ...

  8. [LeetCode] 9. Palindrome Number ☆

    Determine whether an integer is a palindrome. Do this without extra space. Some hints: Could negativ ...

  9. Lodash js数据操作库

    https://lodash.com/docs/4.17.4

  10. git概论

    感谢:http://www.cnblogs.com/atyou/archive/2013/03/11/2953579.html git,一个非常强大的版本管理工具.Github则是一个基于Git的日益 ...