zoukankan      html  css  js  c++  java
  • web前端开发最佳实践--(笔记之JavaScript最佳实践)

    如何避免全局变量污染?

    1. 避免定义全局变量或全局函数
    2. 用一个变量进行封装,并返回外部需要访问的接口

    如何写出高维护的js代码

    1. 配置数据和代码逻辑分离
      如:
      改成:

    1. 用js模板
    1. MVC的数据模式
      model:数据层
      view:用户表现层
      controller:用户交互控制层

    2. 模块化开发
      利用立即执行函数,可以在不暴露私有数据的情况下公开一些公共的接口

      ···
      //全局变量jQuery和module2被传入module1中
      var module1=(function($,module2){})(jQuery,module2);
      ···

    3. 尽量不适用全局变量,因为全局变量在整个生命周期中不会被释放

    4. 确保解除不需要的事件监听

    5. 不要在闭包中返回外部不需要的对象

    使用事件托管方式绑定事件

    //获取父节点并添加一个click事件
    			document.getElementById("list").addEventListener("click",function(e){
    				//检查事件源元素
    				if(e.target&&e.target.nodeName.toUpperCase=="LI"){
    					//针对子元素的处理
    				}
    			})    
    

    常见的web前端攻击方式

    1. XSS (Cross Site Scripting)跨站点脚本攻击,如:

      上述例子在chrome浏览器中会被拦截

      总结:XSS攻击的特点就是:尽一切办法在目标网站上执行非目标网上原有的代码
    2. CSRF(Cross Site Request Forgery):跨站请求伪造

    3. 界面劫持

    防范web前端攻击的最重要一个常识是:永远也不要轻易相信用户输入的数据。一定要针对用户输入做相关的格式过滤检查,防止任何可能的前端注入

    • 更安全的使用Cookie

    移动web前端开发

    1. 使用流式布局
    2. 借助css Media queries(媒体查询),如:

    3. 使用响应式设计框架
    4. 利用工具检查移动设备兼容性 如:
      MobiReady
      howtogomo

    开发移动web端的准备工作

    1. 确定支持的移动设备
    2. 处理和桌面端主网站的交互
      一些移动设备的开发库如下:
      Mobile-Detect
    3. 设置移动站点为单页模式不,避免 页面跳转,改成更友好的弹出层显示
    4. 选择合适的移动前端框架,如:
      jquerymobile
      sencha touch
      kendo
      ionic

    一些定义解释

    作用域链:多个函数嵌套定义时,就会形成作用域包含的关系,这个关系称为作用域链,在内部函数内调用外部对象会降低性能

    一些工具介绍

    1. picturefill 处理图片在不同设备上的显示问题 picturefill
  • 相关阅读:
    我败在了盲目和没有计划
    跟我一起学.NetCore目录
    跟我一起学.NetCore之依赖注入作用域和对象释放
    跟我一起学.NetCore之Asp.NetCore启动流程浅析
    std::unordered_map
    Android apps for “armeabi-v7a” and “x86” architecture: SoC vs. Processor vs. ABI
    android studio 配置相关问题
    shell script
    vscode配置
    linux常用命令笔记
  • 原文地址:https://www.cnblogs.com/elian/p/7873433.html
Copyright © 2011-2022 走看看