2016年某前端群題目答案參考

来源:http://www.cnblogs.com/i7758/archive/2016/02/26/5220447.html
-Advertisement-
Play Games

一.CSS部分 1.什麼是盒模型? 盒模型是網頁製作的基礎,在網頁文檔中每個元素都將被描繪為一個矩形盒子來進行渲染。通常來說,一個完整的盒子如下圖所示: 2.Doctype的幾種類型? Doctype是Document Type(文檔類型)的簡寫,在頁面中,用來指定頁面所使用的XHTML(或者HTM


一.CSS部分

1.什麼是盒模型?

盒模型是網頁製作的基礎,在網頁文檔中每個元素都將被描繪為一個矩形盒子來進行渲染。通常來說,一個完整的盒子如下圖所示:

2016年某前端群題目答案參考 - 愛七七五八網 - 1

2.Doctype的幾種類型?

Doctype是Document Type(文檔類型)的簡寫,在頁面中,用來指定頁面所使用的XHTML(或者HTML)版本。

在 XHTML1.0和HTML 4.01 中有三種 <!DOCTYPE> 聲明。分別為過渡的(Transitional)、嚴格的(Strict)和框架的(Frameset)。^Doctype

(1)過渡的

一種要求不太嚴格的方式,允許在頁面中使用HTML4.01的標識(符合xhtml語法標準)。過渡的DTD的寫法如下:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”

“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

(2)嚴格的

一種要求嚴格的DTD,不允許使用任何表現層的標識和屬性,例如<br/>等。嚴格的DTD的寫法如下:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”

“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>

(3)框架的

一種專門針對框架頁面所使用的DTD,當頁面中含有框架元素時,就要採用這種DTD。框架的DTD的寫法如下:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”

“http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd”>

在 HTML5 中只有一種:

<!DOCTYPE html>

3.如何佈局左不動右邊自適應的兩列佈局?

思路主要為以下兩種:

1.左邊定寬,浮動

2.左邊絕對定位

<html>

<head>

<meta charset=”utf-8″>

<title>1</title>

<style type=”text/css”>

*{

margin: 0;

padding: 0;

}

#left {

position:absolute;

/*float: left;/*區別*/

background-color: red;

width: 250px;

}

#content {

background-color: orange;

margin-left: 250px;/*==等於左邊欄寬度==*/

}

</style>

</head>

<body>

<div id=”left”>left</div>

<div id=”content”>content</div>

</body>

</html>

4.如何佈局兩列等高?

主要思路如下:

1.假等高列方法,在列的父元素上使用背景圖片在y軸上平鋪,造成等高列的假象

2.table-cell法

<!DOCTYPE html>

<html lang=”en”>

<head>

<meta charset=”UTF-8″>

<title>Document</title>

<style type=”text/css” media=”screen”>

#box{

width:800px;

background:red;

margin:0 auto;

overflow:hidden;

}

.col{

display:table-cell;

width:400px;

}

.col:first-child{

background:blue;

}

.col:last-child{

background:green;

}

</style>

</head>

<body>

<div id=”box”>

<div class=”col”>

<p>123</p>

<p>456</p>

<p>456</p>

<p>456</p>

</div>

<div class=”col”>8989</div>

</div>

</body>

</html>

3.補丁法

<!DOCTYPE html>

<html>

<head>

<meta charset=”utf-8″>

<title>兩列等高佈局(float+margin+position)</title>

<style type=”text/css”>

#fa {

width: 800px;

margin: 0 auto;

background-color: #1524e5;

/*

*overflow就決定了#fa元素生成了bfc或者觸發了haslayout

*並且還把超出的高度截掉了

*/

overflow: hidden;

}

.col {

float: left;

width: 50%;

padding-bottom: 10000px;

margin-bottom: -10000px;

/*

*把下麵兩行註釋去掉試試看

*你會發現父元素的背景出現了

*這說明父元素的高度是最高的子元素的高度

*而子元素的高度就是根據盒模型算出來的

*/

/* padding-bottom: 100px; */

/* margin-bottom: -100px; */

/*

*由於生成了bfc,所以如果給子元素加一個margin-top,也會被計算進高度

*不信去掉下麵的註釋試試~

*上邊出現了父元素的背景吧~~~

*/

/* margin-top: 20px; */

}

.col:first-child {

background-color: #34ef34;

}

.col:last-child {

background-color: #ef34ef;

}

</style>

</head>

<body>

<div id=”fa”>

<div class=”col”>

<p>1231321321</p>

<p>1313213</p>

<p>1313213</p>

<p>1313213</p>

<p>1313213</p>

<p>1313213</p>

</div>

<div class=”col”>45645456456</div>

</div>

</body>

</html>

5.如何佈局右側定寬,左側或中間自適應?

<!DOCTYPE html>

<html>

<head>

<meta charset=”utf-8″>

<title>右側定寬,左側自適應寬</title>

<style type=”text/css”>

*{

margin: 0;

padding: 0;

}

#content {

width: 100%;

color: red;

float: left;

background:#666;

height:400px;

margin-right: -230px;/*==等於右側欄寬度==*/

}

#side{

width:230px;/*==等於右側欄寬度==*/

height:500px;

color:#fff;

background:green;

float: left;

}

</style>

</head>

<body>

<div id=”content”>Main Content</div>

<div id=”side”></div>

</body>

</html>

6.如何佈局三列自適應?

主要思路如下:

1.絕對定位法(左右兩欄絕對定位,固定於頁面兩側,主體欄用margin撐開距離)

<!DOCTYPE html>

<html>

<head>

<title></title>

</head>

<style type=”text/css” media=”screen”>

*{

margin:0px;

height: 100%;

}

#left,#right{

position: absolute;

top:0px;

width: 200px;

height: 100%;

}

#left{

left:0px;

background: red;

}

#right{

right:0px;

background: green;

}

#main{

margin:0 210px;background: blue;height: 100%;

}

</style>

<body>

<div id=”left”></div>

<div id=”main”></div>

<div id=”right”></div>

</body>

</html>

2.margin負值法

主體採用雙層標簽,外層DIV寬度100%顯示,且浮動。內層div為真正主體內容,左欄與右欄採用margin負值定位,左欄左浮動,margin-left:-100%,使其正好到達最左端,

<!DOCTYPE html>

<html>

<head>

<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />

<title>11</title>

<style type=”text/css”>

html,body{margin:0; height:100%;}

#main{width:100%; height:100%; float:left;}

#main #body{margin:0 210px; background:#ffe6b8; height:100%;}

#left,#right{width:200px; height:100%; float:left; background:#a0b3d6;}

#left{margin-left:-100%;}

#right{margin-left:-200px;}

</style>

</head>

<body>

<div id=”main”>

<div id=”body”></div>

</div>

<div id=”left”></div>

<div id=”right”></div>

</body>

</html>

3.自身浮動法:

應用標簽浮動跟隨的特性,左欄左浮動,右欄右浮動,主體直接放後面,實現自適應

<!DOCTYPE html>

<html>

<head>

<meta charset=”utf-8″>

<title>11</title>

<style type=”text/css”>

html,body{margin:0; height:100%;}

#main{height:100%; margin:0 210px; background:#ffe6b8;}

#left,#right{width:200px; height:100%; background:#a0b3d6;}

#left{float:left;}

#right{float:right;}

</style>

</head>

<body>

<div id=”left”></div>

<div id=”right”></div>

<div id=”main”></div>

</body>

</html>

7.gif,png,jpg的區別?

參考: ^圖片特點比較

圖片類型透明性動畫支持損耗性顯示方式
GIF Gif是一種布爾透明類型,它可以是全透明或全不透明,但是它並沒有半透明(alpha 透明) 支持 Gif是一種無損耗的圖像格式,這也意味著你可以對gif圖片做任何操作也不會使圖像質量產生損耗; Gif使用LZW演算法進行壓縮,當壓縮gif的過程中,像素是由上到下水平壓縮的,這也意味著同等條件下,橫向的gif圖片比豎向的gif圖片更小。例如500*10的圖片比10*500的圖片更小 Gif支持可選擇性的間隔漸進顯示; 只有256種顏色的gif圖片不適合作為照片,它適合做對顏色要求不高的圖形。
PNG Png是完全支持alpha透明的(透明,半透明,不透明) 不支持 png是一種無損耗的圖像格式,這意味著png圖片做任何操作也不會使圖像質量產生損耗。這也使得png可以作為jpeg編輯的過渡格式; 像GIF一樣,png也是水平掃描的,這意味著水平重覆顏色比垂直重覆顏色的圖片更小 它支持間隔漸進顯示,但是會使圖片大小更大
JPG 不支持 不支持 除了一些如旋轉(僅僅是90、180、270度旋轉),裁切,從標準類型到先進類型,編輯圖片的原數據之外,所有其它對jpeg圖像的處理都會使它的質量產生損失。所以我們在編輯過程一般用png作為過渡格式 它支持隔行漸進顯示(但是ie瀏覽器並不支持這個屬性,但是ie會在整個圖像信息完全到達的時候顯示)。 由上可以看出Jpeg是最適web上面的攝影圖片和數字照相機中。

綜述:

GIF適合圖形,JPEG適合照片,PNG系列兩種都適合。

PNG相比GIF:

對於相同色值,gif格式圖片會比png32格式圖片小。但png8才是最優的選擇。

PNG 8除了不支持動畫外,PNG8有GIF所有的特點,但是比GIF更加具有優勢的是它支持alpha透明和更優的壓縮。所以,大多數情況下,你都應該用PNG8不是GIF(除了非常小的圖片GIF會有更好的壓縮外)。

PNG相比JPEG:

JPEG比全色PNG具有更加好的壓縮,因此也使得JPEG適合照片,但是編輯JPEG過程中容易造成質量的損失,所以全色PNG適合作為編輯JPEG的過渡格式.

8.什麼是css sprite?優缺點?

CSS Sprites(雪碧圖)就是把網頁中用到的一些背景圖片整合到一張圖片文件中,利用CSS的“background-image”,“background-repeat”,“background-position”來組合進行背景定位。

優點: 減少網頁的http請求,大大提高頁面性能。

缺點:在圖片合併的時候,你要把多張圖片有序的合理的合併成一張圖片,還要留好足夠的空間,防止板塊內出現不必要的背景。修改編輯圖片時也相對較為繁瑣。

9.製作細線表格?

定義CSS:border-collapse屬性,將值設為collapse,合併邊框

10.position:relative,absolute,fixed區別與聯繫?

postion一共有四個可選屬性:static|relative|absolute|fixed,預設是static。

一:relative

relative會導致元素自身位置的相對變化,但不會影響其它元素的位置、大小。

二:absolute

①absolute元素脫離文檔結構(和float元素類似,float元素也會脫離文檔結構)

②absolute元素具有“包裹性”。會使其之前的塊級元素的寬度變為內容的寬度。

③absolute元素具有“跟隨性”。沒有設置top、left的值時,與其前一個元素的top,left值為0。

如果為absolute設置了top、left,absolute元素會根據最近的定位上下文確定位置,瀏覽器會遞歸查找該元素的所有父元素,如果找到一個設置了position:relative/absolute/fixed的元素,就以該元素為基准定位,如果沒找到,就以瀏覽器邊界定位。

三:fixed

其實fixed和absolute是一樣的,唯一的區別在於:absolute元素是根據最近的定位上下文確定位置,而fixed永遠根據瀏覽器確定位置.

11.如何居中一個float:left的元素

主要思路如下:

1.定義父級元素為行級元素,在父級元素之上設定text-align:center

<!DOCTYPE html>

<html lang=”en”>

<head>

<meta charset=”UTF-8″>

<title>Document</title>

</head>

<body >

<div style=”text-align: center;”>

<div style=”display: inline-block;”>

<div style=”float:left;background: green;”>

子元素1

</div>

<div style=”float:left;background: blue;”>

子元素2

</div>

</div>

</div>

</body>

</html>

2.父元素浮動法

在外層包裹一個父元素,使他浮動,相對定位,left:50%;內部元素同樣相對定位,left:-50%;

<!DOCTYPE html>

<html lang=”en”>

<head>

<meta charset=”UTF-8″>

<title>Document</title>

</head>

<body >

<div style=”float:left;position:relative;left:50%;”>

<div style=”float:left;left: -50%;background: green;”>

子元素1

</div>

<div style=”float:left;background: blue;”>

子元素2

</div>

</div>

</body>

</html>

12.Css在各瀏覽器下的相容問題你通常是怎麼來解決的,請分享你的經驗;

解決辦法一般都是平時為知筆記記錄,搜索時熟悉內容找筆記內容+不熟悉的找谷歌。

二.JS部分

1.parseInt 與 parseFloat 的區別?

parseInt 與 parseFloat 是把字元串轉換成整數和浮點數的方法,

二者語法如下

parseInt(string, radix)

parseFloat(string)

parseInt多一個可選的radix數字基數。

兩者的一些參數執行返回結果如下

strparseInt(str)parseFloat(str)
零長度字元串 NaN NaN  
null NaN NaN  
undefined NaN NaN  
.3 0 0.3  
-.3 NaN -0.3  
-3 -3 -3  
3e7 3 30000000  
0xFF 255 0  
0x3e7 999 0  
08 8 8  
3 3 3  
123abc 123 123

2.valueof 與 toString 的區別?

基本上,所有的JS數據類型都擁有這兩種方法(NULL除外),他們倆解決了JS值的運算和顯示問題。

在《javaScript 高級程式設計》一書中描述如下:

toString()——返回對象的原始字元串表示

valueOf()——返回最適合該對象的原始值

一個例子:

<script>

function Money(gold, silver, coin)

{

this.gold = gold;

this.silver = silver;

this.coin = coin;

}

Money.parse = function(value)

{

var coin = parseInt(value % 25);

var silver = parseInt(value / 25 % 20);

var gold = parseInt(value / 500);

return new Money(gold, silver, coin);

}

Money.prototype.valueOf = function( )

{

return ((this.gold * 20) + this.silver) * 25 + this.coin;

}

Money.prototype.toString = function( )

{

return this.gold + “金,” + this.silver + “銀,” + this.coin + “銅”;

}

var money1 = new Money(5, 6, 1);

var money2 = new Money(2, 4, 6);

var money3 = Money.parse(money1 + money2);

alert(money3);//7金,10銀,7銅

</script>

這裡隱式調用了valueOf跟toString,二者並存的情況下,在數值運算中,優先調用了valueOf,字元串運算中,優先調用了toString。比如money1 + money2,調用的就是兩者valueOf之後的值相加,而alert的時候,把money3先toString了一下。

strvalueOf(str)toString(str)
Array Array數組的元素被轉換為字元串,這些字元串由逗號分隔,連接在一起。其操作與 Array.toString 和 Array.join 方法相同。 Array將 Array 的元素轉換為字元串。結果字元串由逗號分隔,且連接起來。  
Boolean Boolean的原始值 Boolean如果 Boolean 值是 true,則返回 “true”。否則,返回 “false”。  
Date Date存儲的時間是從 1970 年 1 月 1 日午夜開始計的毫秒數 UTC。 Date返回日期的文字表示法。Error返回一個包含相關錯誤消息的字元串。  
Function Function函數本身。 Function返回如下格式的字元串,其中 functionname 是被調用 toString 方法函數的名稱: function functionname( ) { [native code] }  
Number Number數字值。 Number返回數字的文字表示。  
Object Object對象本身。這是預設情況。 Object預設返回 “[object objectname]”,其中 objectname 是對象類型的名稱。  
String String字元串值。 String返回 String 對象的值。

3.全等與相等?

相等(==),當且僅當兩個運算符相等時,返回true。在確定兩個運算符時會進行類型轉換。

執行類型轉換的規則如下:

如果一個運算數是 Boolean 值,在檢查相等性之前,把它轉換成數字值。false 轉換成 0,true 為 1。

如果一個運算數是字元串,另一個是數字,在檢查相等性之前,要嘗試把字元串轉換成數字。

如果一個運算數是對象,另一個是字元串,在檢查相等性之前,要嘗試把對象轉換成字元串。

如果一個運算數是對象,另一個是數字,在檢查相等性之前,要嘗試把對象轉換成數字。

全等(===)

只有在無需類型轉換運算數就相等的情況下,才返回 true。

4.break 與 continue 的區別?

break表示跳出迴圈,continue表示結束本次迴圈

5.js的作用域?

js的作用域以函數function來劃分,根據作用域,使得變數存在作用域的概念分為全局變數和局部變數。

6.Array 的 slice 與 splice 的區別?

arrayObject.slice(start,end)

slice() 方法從已有的數組中返回選定的元素,其接收1或2個參數,返回一個新的數組,包含數組下標從 start 到 end(不包括該元素)的 arrayObject 中的元素。(如果沒有指定end參數,那麼切分的數組包含從 start 到數組結束的所有元素。)

如:

var aCloros = [“red”,”green”,”blue”,”yellow”,”purple”];

var aCloros2 = aCloros.slice(1);

var aCloros3 = aCloros.slice(1,4);

alert(aCloros2);//output “green,blue,yellow,purple”

alert(aCloros3);//output “green,blue,yellow”

arrayObject.splice(index,howmany,item1,…..,itemX)

splice() 方法可從數組中添加或刪除項目,然後返回被刪除的項目。

splice() 方法可刪除從 index 處開始的零個或多個元素,howmany表示刪除數量,後面的參數表示向數組中添加的新項目。

var arr = new Array(6)

arr[0] = “red”

arr[1] = “green”

arr[2] = “blue”

arr[3] = “yellow”

arr[4] = “purple”

arr.splice(2,0,”white”) //output red,green,white,blue,yellow,purple

arr.splice(2,1,”white”) //output red,green,white,yellow,purple

7.正則中test 與 match 的區別?

RegExpObject.test(str)

test()方法用於檢測一個字元串是否匹配某個模式.如果字元串str中含有與RegExpObject 匹配的文本,則返回 true,否則返回 false。

//匹配正整數

var patten = /^[1-9]\d*$/;

patten.test(“1498924”) //true

patten.test(“-1498924”) //false

stringObject.match(regexp)

match() 方法可在字元串內檢索指定的值,或找到一個或多個正則表達式的匹配。返回指定的值。

var str=”1 + 2 * 3 / 4″

str.match(/\d+/g) //[“1”, “2”, “3”, “4”]

8.如何在js中創建一個對象並繼承他?

function Person(name) {

this.name = name;

}

Person.prototype = {

constructor: Person, //強制聲明構造函數,預設是Object

sayName : function( ) {

alert(this.name);

}

}

var Person1 = new Person(“xiaoming”);

9.什麼是prototype ? 什麼是原型鏈?

而JavaScript中每個對象都有一個內部的鏈接指向另一個對象,這個對象就是原對象的原型(prototype)。這個原型對象也有自己的原型,直到對象的原型為 null 為止。這種一級一級的鏈結構就是原型鏈。

如通過new運算符創建的對象,構造函數.prototype的值就是該對象的原型對象。

var now = new Date();

now對象的原型對象就是Date.prototype。

通過new 一個對象就可以調用裡面的公開的方法,屬性。

10.setTimeout 與 setInterval 的區別?

setTimeout()方法用於在指定的毫秒數後調用函數或計算表達式。

setInterval()方法可按照指定的周期(以毫秒計)來調用函數或計算表達式。它會不停地調用函數,直到 clearInterval() 被調用或視窗被關閉。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的參數。

11.cssText?

cssText的本質就是設置HTML元素的style屬性值。

document.getElementById(“d1”).style.cssText = “color:red; font-size:13px;”;

12.offsetWidth, scrollLeft, scrollHeight?

offsetWidth:元素的寬度(width + padding + border)

scrollLeft:返回和設置當前橫向滾動條的坐標值

scrollWidth:獲取對象的滾動高度。

13.IE的事件與w3c事件的區別?

w3c事件流:

從根文檔(html)開始遍歷所有子節點,如果目標事件的父節點設置為捕獲時觸發,則執行該事件,直到目標被執行,然後再事件冒泡(設置為捕獲時觸發的事件不再被執行)。

ie事件流:

從目標事件被執行,然後再冒泡父節點的事件,直到根文檔。

三.高級部分

1.除了jQuery以外,請寫出你所知道的js框架,試說出不同框架的特點;

Zeptojs:輕量級的適於移動端的針對高級瀏覽器的JavaScript庫(類jQuery)

Underscore.js:一個JavaScript實用庫,提供了一整套函數式編程的實用功能,沒有擴展任何JavaScript內置對象,彌補了部分jQuery沒有實現的功能。

Bootstrap:擁有豐富的Web組件。

Node.js: 跨平臺、可用於伺服器端和網路應用的運行環境;具有事件驅動、單線程運行、非阻塞I/O調用、V8引擎執行代碼的特性。Node.js含有一系列內置模塊,使得程式可以作為獨立伺服器運行,適合在分散式設備上運行的數據密集型的實時應用.

AngularJS: MVVM、模塊化、自動化雙向數據綁定、語義化標簽、依賴註入等等,適用於單頁面、CRUD應用。

ReactJs:基於組件化開發,而且所有組件有其狀態。將DOM封裝為可以相互組合的 Component, 並且將DOM操作抽象為狀態的改變。

2.對於Javascript中OOP的理念,你認為在項目開發中有沒有必要,什麼樣的項目適合前端OOP,請談談你的看法;

我個人認為不太重要,在前端頁面不需要刻意的去追求面向對象。

因為對於面向對象我們需要註意“繼承、多態、封裝、組合”等特性,它們的出發點都是“分離減少關註點”。使程式以最小的代價來適應“關註點”的變化。

但對於前端代碼需要關註的東西與後端存在許多不同,後端程式大多只需關註項目的“數據+行為”——關註點不多且容易預測。而前端則是“數據+行為+展現+交互”,其中多出來的“展現+交互”決定了前端的關註點更多且更加無從預測,除非人為限制減少相關的關註點,讓UI和交互套在一個相對死的範圍內進行,而這樣難免會影響到UI的靈活性,不可避免的面對:“醜,慢,大”等特性。

結合以上,前端層面上做好代碼的分層、解耦、結構化則更優,但做這些事和追求面向對象沒有必然關係。

3.在Javascript開發中,關於性能優化,分享一下你相關的經驗?

對於JS開發個人總結大概如下:

基本原則:

儘可能的減少請求。

代碼開發遵守規範

具體細節:

基本的代碼規範,如JS腳本放在底部載入,儘量寫為外部文件,基本的上線壓縮等

其餘一些細節包括

資源載入

資源載入:首頁載入性能提升

按需載入:靜態資源依賴關係表,lazyload

開發規範

AJAX:緩存AJAX,請求:GET

減少DOM操作

避免全局變數,儘量使用語言本身的構造和內建函數等。

等等。。

具體可參考前端性能優化指南

4.對於模塊開發你是怎麼看的?

前端採用模塊化開發,使得開發體驗大大增強,也使代碼管理更加清晰、規範。主要表現為以下幾點:

減少命名衝突,消除全局變數

一個模塊一個文件,組織更清晰

依賴自動載入,按需載入

其中文件按需載入,依賴自動管理,使得更多精力去關註模塊代碼本身,開發時不需要在頁面上寫一大堆script引用,一個require初始化模塊就搞定。

前端模塊化規範標準:

CommonJs (Node.js)

AMD (RequireJS)

CMD (SeaJS)

也可參考這裡的前部分前端模塊化開發的價值

5.對於Javascript MVC開發你是怎麼看的?分享一下你瞭解的相關信息?

簡單瞭解的採用MVC開發模式的庫包括:

Backbone.js——優點:社區較好,缺點:抽象較弱。

Ember.js——優點:豐富的模板系統,擁有複合視圖和UI綁定;缺點:相對較新,還不夠成熟

Angular.js——優點:對模板範圍和控制器設計有很好的考慮,擁有依賴註入系統,支持豐富的UI綁定語法。缺點:代碼的模塊性不強,視圖的模塊化也不夠。

其餘瞭解的不多

但平常做項目的時候,特別是大項目,一定要把MVC的概念放在業務場景里多想想。MVC並不是終極思想。它有它適合的地方,但也有其局限的一面。還有前端MVC的話,對應的後臺最好是REST風格的介面。還有並不是越複雜的前端業務,越緊迫地需要MVC。一定要多想多看。

MVC的一大問題在於:MVC開發模式會將本身簡單的系統大大增加結構的複雜性,並且降低效率。

但整套前端開發其實本質上可以看做一個大大的MVC架構:

Model: HTML/XHTML中的信息

View: Style sheet

Controller: EMAScripts等等腳本

6.AJAX是什麼? AJAX跨域的解決辦法?

AJAX即“Asynchronous JavaScript and XML”(非同步的JavaScript與XML技術),是一種創建互動式網頁應用的網頁開發技術。通過在後臺與伺服器進行少量數據交換,AJAX 可以使網頁實現非同步更新。意味著可以在不重新載入整個網頁的情況下,對網頁的某部分進行更新。

AJAX跨域解決:

使用中間層過渡的方式:

就是在AJAX與不同域的伺服器進行通訊的中間加一層過渡,這一層過渡可以是PHP、JSP、c++等任何具備網路通訊功能的語言,由中間層向不同域的伺服器進行讀取數據的操作。

使用<script>標簽

利用<script>標簽中src來請求,因為<script>標簽的src屬性不存在跨域的問題。

jsonp

本文固定鏈接: http://www.i7758.com/archives/2377.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 首先Ajax的不刷新頁面提交數據,現在應用非常廣泛,廢話不多說馬上進主題!! 基本上瀏覽器能接收的信息,Ajax都可以接收,ex:字元串,html標簽,css標簽,xml格式內容,json格式內容等等..... <script> // IE瀏覽器 if(ActiveXObject){ // 微軟目前
  • JS中function的一些淺見
  • 今天總結了下Node.js的Formidable模塊的使用,下麵做一些簡要的說明。 1) 創建Formidable.IncomingForm對象 var form = new formidable.IncomingForm() 2) form.encoding = 'utf-8' 設置表單域的編碼
  • 1. 首先嘛,你得在瀏覽器里輸入要網址: 2. 瀏覽器查找功能變數名稱的IP地址 導航的第一步是通過訪問的功能變數名稱找出其IP地址。DNS查找過程如下: 瀏覽器緩存 – 瀏覽器會緩存DNS記錄一段時間。 有趣的是,操作系統沒有告訴瀏覽器儲存DNS記錄的時間,這樣不同瀏覽器會儲存個自固定的一個時間(2分鐘到30分鐘
  • 表格示例 <div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng-repeat="x in names | orderBy : 'Country'"> <td>{{ $index + 1 }}</td> <td ng-if=
  • html5功能強大,數字和顏色輸入框例子 效果:http://hovertree.com/code/html5/rxujb6g8.htm 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="te
  • DOM樹由文檔中的所有節點(元素節點、文本節點、註釋節點等)所構成的一個樹結構,DOM樹的解析和構建是瀏覽器要實現的關鍵功能。既然DOM樹是一個樹結構,那麼我們就可以使用遍歷樹結構的相關方法來對DOM樹進行遍歷,同時DOM2中的"Traversal"模塊又提供了兩種新的類型,從而可以很方便地實現DO...
  • 下麵提一下jQuery的each方法的幾種常用的用法 複製代碼 代碼如下: var arr = [ "one", "two", "three", "four"]; $.each(arr, function(){ alert(this); }); 上面這個each輸出的結果分別為:one,two,th
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...