js開發的小問題彙總

js開發的小問題彙總

  • 1.require js 中引入jquery插件(以cookie爲例)
require js 最基本寫法爲:
require.config({
 paths: {
        "jquery": "../jquery-1.11.1.min",
        "domReady": "../require/domReady",
        }
 })
 var app=require(['domReady', 'jquery'],function(doc,$){
        ......
})
當引入jquery的插件時,應加入shim,寫法爲:
require.config({
  shim: {
  'jquery.cookie': ['jquery']
  }
  paths: {
        "jquery": "../jquery-1.11.1.min",
        "domReady": "../require/domReady",
        "jquery.cookie":"../jquery.cookie",
        }
 })
 var app=require(['domReady', 'jquery',"jquery.cookie"],function(doc,$){
        ......
})
注意:
在require([],function(){})中,只出現在參數中,函數裏不出現
路徑中不要出現.js

  • 2.require js 中引入不符合AMD規則的js(以RSA爲例)
需要用到BigInt.js中的setMaxDigits()方法,在require js中寫法爲:
require.config({
  shim: {
    "BigInt":{
              deps:[],
              exports: 'setMaxDigits'
    },
  }
  paths: {
        "jquery": "../jquery-1.11.1.min",
        "domReady": "../require/domReady",
        "jquery.cookie":"../jquery.cookie",
        }
 })
 var app=require(['domReady', 'jquery','BigInt'],function(doc,$,BigInt){
        ......
})
調用setMaxDigits()方法時直接
BigInt(t)

  • 3.setTimeOut帶參數的方法遞歸調用失敗
設計一個倒計時函數,每隔1秒alert
  function time(t) {
      alert(t);
      t = t - 1;
    if (time >= 0) {
        setTimeout("time("+ t +")", 1000);
    } else {
        //alert('倒計時結束!');
    }
  }

  time(10);
發現當t=9時,VM報錯,於是改成如下寫法,一切正常
  function time(t) {
      alert(t);
      t = t - 1;
    if (time >= 0) {
        setTimeout(function(){
            time(t);
        }, 1000);
    } else {
        //alert('倒計時結束!');
    }
  }

  time(10);

  • 4.調用接口報錯500,顯示不是JSON對象
可能是由於編碼不同,在ajax調用時加上contentType限制,一切就正常啦
contentType:"application/json;charset=utf-8"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章