2016.11.07正式入职xx企业(暂时保密),岗位:web前端开发工程师。
作为从一个设计、美工转战到web前端开发岗位,当然,现在还处于试用期阶段,三个月的时间,不短吧,不知道是不是能顺利的通过这段时期,希望吧。
作为一个转行的人,可以说我的转行是历经曲折,经历了八九个月的时间,其中五味杂陈,只有自己知道自己经历了多么痛苦的时光,不过,还好吧,自己的选择,自己的兴趣,苦点累点倒不是很重要,重要的是现在自己进入了开发角色,无所谓薪水、工作时间等,只要是开发的工作就好,不要单纯的做个coding man...巴拉巴拉说了这么多还没进入正题,废话不多说,说说这一周的经历与收获吧。
周一入职,上午看了一会文档、接口什么的,说实话,开始的时候我不知道这玩意是干啥用的,我知道这个玩意是干啥用的是到了周四的时候吧大概,那个时候有个需求要跨域post请求数据,这时候用到了文档的接口,才知道所谓的接口这个玩意是链接url的组成的一部分,那个返回的字段什么什么的是响应的信息啥的,大概是下午的时候吧,带我的那个大哥给了我一个需求让我做,跟产品的一哥们对接,我就做呗,大概是照着百度地图的某个页面增加一个功能页面,功能很简单,添加、修改、删除,就这三项,本以为很简单的功能,以前做的时候就是js控制一下页面内容的增加append,删除remove,修改就是抓一下页面元素修改了再存一下show一下就ok的,但是,这里说的就是这个但是,但是以前做的那些都是一些死的数据,现在是实际的项目,数据不可能是死的,必须写活,写活的话就得靠后台的数据了,这当然就要用到那个接口什么的啦,$.ajax()去跨域请求数据资源,show到页面上,修改完的数据update到后台数据的接口那边更新数据,如此往复,还好终于在周五的时候搞定了。
就说说这个$.ajax({
timeout:3000,//请求超时时间(ms)
url:url,//缺省默认为当前页url
data:{k:v,k:v,...},//map类型
type:"post",//get(缺省时默认值)
dataType:"json",//jsonp
async:true,//是否异步默然是true 特别情况对程序执行顺序有要求的时候async:false 容易锁住浏览器,在ajax程序执行完以前,浏览器处于锁死状态,用户不能操作
cache:true,//缓存
crossDomain:true,
success:function(data){}
});
我用到了的大概就是这些参数,处理的时候大概遇到了两个问题吧:
1、data参数(部分参数有初始值,另外一部分参数需要特定时机下获得参数值),data的定义与传入时机的确定在什么位置,如果data的所有值都确定,直接在ajax内部使用就可以了,可以不用data传入callback(data),还有就是所说的情景下,这种情况下data必须以参数的形式传入callback(data),传入之前data={},data.key=value的形式定义data;
2、ajax的程序执行顺序对整个程序的影响,主要是ajax程序的执行的滞后问题,ajax的异步执行必然导致ajax内部的操作晚于很多线程,致使要想使用内部的变量的一些操作必然出现预料之外的问题,处理方法嘛,大概分两种:一种是更改async:flase;即修改ajax的异步操作为同步,不执行完程序不向下进行,当然,就目前的这个小问题这样的操作未免有些小题大作了,有点浪费这个属性的价值了;那就说说第二种,既然是ajax内部的执行晚于外部的线程,能不能把外部的程序移到ajax内部呐,回答当然是肯定的,可以,并且很好的解决了问题,哪儿出的问题就修改哪儿,效果也一目了然,直截了当。
还有遇到了另外一个问题:select中option状态的动态修改:$(‘select>option[xxx=xxx]‘).attr("selected","selected")