实践中的各种问题


    1. 今天遇到了URL的编码问题:将字符串以 URL 编码。例如空格就会变成加号,当我们传入的参数中含有空格时,在服务器端接收到的是空格转成了“+”符的字符串,导致失配,妹妹的!这么搞也不事先说一声,问题找的好辛苦,这时我们将用到一个函数rawurlencode(),他可以将空格等字符正确的转义,变成(%20等),这样就可以了

    虽然在客户端或服务器端将URL的某些字符替换,达到同样的效果,导致代码杂乱,而且其可扩展性和健壮性肯定不如用rawurlencode(),不建议使用

      说到转码的问题,还要多说一句的就是,最近在编辑页面嵌入了一个编辑器(页面还有一个<form>),那在ajax传递数据的时候,如果在编辑器里输入‘,“等特殊符号时,数据被截断了,

       查找原因:因为图方便,用了serialize()函数序列化表单,利用js接入编辑器的内容时,是因为‘等被转成了&开头的码(&#39),导致被识别成了新的数据,导致数据截断。

       解决方法:1).手动添加form数据,将数据做成数组的形式,在ajax时会自动转成字符串,并且处理相关情况;

                         2).将编辑器内容再转码成URL编码的形式,如:escape()函数。


    2. 为了在线预览pdf等文件,我们review了好些方案,最后还是觉得先用截图搞吧,但用Imagick插件截出来的图,大小不一啊,从2K 到 3M 的都有,为了网页加载速度,我们要搞到20K一下,转格式,压缩,调色深,颜色空间,效果都不理想

    图片处理问题:图片变小,再小,再小小


   3.  要在thinkphp模板中调用php函数,没错,这时可以做到的,但我们需要在前端input框中输入值作为参数,也就是方法要传入js变量:

    var slug = $(this).val(); var to_slug = "<{:to_slug('" + slug + "')}>";  alert(to_slug); $("#post_slug").val(to_slug); 

    这是代码,但这几句的形式无论怎么变,都不能达到预期效果,而且目前看来就thinkphp的模板解析顺序,这种需求是不能实现的,好吧,还是老老实实的用ajax传到后台,处理完在传回吧!


  4. 前端html中多个相同ID,js只能找到一个,

           如: html中有多个input都的id=blog_id,可是$("#blog_id")只能找到第一个,听说css还是可以用,这也就是为什么id需要唯一的原因,如果项目中不得不这么写,或者多个id相同会带来很大的便利,没关系,搞出来有一招,可以这样写:$("input#blog_id"),就可以找到所有的DOM元素了


  5. EasyUI的combobox会使得正常的jQuery事件失效,还不太清除原因,可能是js冲突了,但validatebox不会,其他的还不知道, 暂时还没搞过,只能用它自带的方法,属性,妹妹的。。。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值