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. [Leetcode] restore ip address 存储IP地址

    Given a string containing only digits, restore it by returning all possible valid IP address combina ...

  2. 2 Advanced Read/Write Splitting with PHP’s MySQLnd

    原文地址需FQ才能看  https://blog.engineyard.com/2014/advanced-read-write-splitting-with-phps-mysqlnd In part ...

  3. python获取当前工作目录

    py文件所在位置/test/pj/hello.py 用户所在位置:/ 用户执行命令python /test/pj/hello.py 1. os.getcwd() 返回的是执行命令的位置 / 2.sys ...

  4. windows下安装git

    1.从Git官网下载windows版本的git:http://git-scm.com/downloads 2.一般使用默认设置即可:一路next,git安装完毕! 3.但是如果这时你打开windows ...

  5. uboot两阶段代码分析

    1.启动过程特征总结(1)第一阶段为汇编阶段(start.s).第二阶段为C阶段(board.c中的start_armboot 函数)(2)第一阶段在SRAM中.第二阶段在DRAM中(3)第一阶段注重 ...

  6. Java并发之同步原语

    volatile: 定义:Java编程语言允许线程访问共享变量,为了确保共享变量内被准确和一致性地更新,线程应该确保通过排它锁单独获得这个变量.根据volatile的定义,volatile有锁的语义. ...

  7. mixin模式特点

    mixin模式特点: 1.单一功能, 2.不和基类关联,可以和任意基类组合,基类可以不和mixin关联就可以初始化成功 3.不使用 super() 用法

  8. 原生js实现单屏滚动

    类似于fullpage的单屏滚动,使用原生JS实现,不依赖任何js库: css: html,body {height:100%;} body {margin:0px;} div {height:100 ...

  9. 企业CEO最核心的应该是销售意识

    一个企业的本质是赚利润,利润怎么来?靠卖东西,所以企业里面最重要的应该是销售人员.在一些500强的外企里有一个规定,没有做过销售的人是很难升到总经理的,在以色列的军队中,没有当过班长,是不可以被提拔为 ...

  10. Bzoj4710 [Jsoi2011]分特产

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 96  Solved: 62[Submit][Status][Discuss] Description ...