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. POJ.1287 Networking (Prim)

    POJ.1287 Networking (Prim) 题意分析 可能有重边,注意选择最小的边. 编号依旧从1开始. 直接跑prim即可. 代码总览 #include <cstdio> #i ...

  2. AOJ.综合训练.2016-11-24

    AOJ.综合训练 友情提示:不要复制粘贴,看完解析先自己尝试写一下.不行再看题解.这样才会有提高! A题 金字塔 题意分析 分别读入10个数,按照他给出的格式输出就行了.注意每有7个字符(包括空格). ...

  3. atom的快捷键,你hold住吗?

    命令面板:Ctrl+Shift+P设置窗口:Ctrl+,另存为: Ctrl+Shift+S添加文件:Ctrl+O添加文件夹:Ctrl+Alt+O工程内查找 :Cmd+Shift+F a,m,delet ...

  4. B树,B+树,B*树简介

    B树(有些人也叫B-树) 是一种多路搜索树 : 1.定义任意非叶子结点最多只有M个儿子:且M>2: 2.根结点的儿子数为[2, M]: 3.除根结点以外的非叶子结点的儿子数为[M/2, M]: ...

  5. Mysql 语句优化技巧

    前言 有人反馈之前几篇文章过于理论缺少实际操作细节,这篇文章就多一些可操作性的内容吧. 注:这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础. 优化目标 ...

  6. HDU 1715 大数java

    大菲波数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  7. tomcat log4j配置

    tomcat默认的log使用的是java.util.logging,配置文件在${catalina_base}/conf/logging.properties tomcat日志分类, 1.access ...

  8. Web Api Action的筛选

    web Api设置默认路由设置: 这种目标Action方法的选择有以下几轮: 1.针对 HTTP方法 进行筛选 2.针对参数类型,可以做参数约束 3.针对参数数量 另一种路由“api/{control ...

  9. Sublime Text 3 一些简单使用

    1.注释 选中需要注释的代码,“Ctrl+/”单行注释,“Ctrl+Shift+/”多行注释.同样操作,可以取消注释. 2.查找 “Ctrl+F”,在底部会出现快速搜索框,在搜索框中输入需要搜索的变量 ...

  10. sublime 常用插件 感觉比较全了 够用了

    插件介绍 Package Control 功能:安装包管理 简介:sublime插件控制台,提供添加.删除.禁用.查找插件等功能 使用:https://sublime.wbond.net/instal ...