❶ jquery代碼優化重構

^^var $masterUL =$('#nav'),
$rels = $('#nav').find('[rel^="dropmenu"]');
$rels.each(function(i,el){
var index = $(el).attr('rel').replace('dropmenu','');
$("#dropmenu"+index).insertAfter(el);
});
再短點就是
$('#nav').find('[rel^="dropmenu"]').each(function(i,el){
$("#dropmenu"+$(el).attr('rel').replace('dropmenu','')).insertAfter(el);
});

❷ 請問用html5怎麼重構一個已有的網站

對於一個已有的網站,而且在界面上不進行改動,那麼主要就是在HTML標簽上進行改動一版下,把HTML5的標簽用上去即可。權
比如你原來頭部可能是這樣寫的
<div class="header">.........</div>
那麼現在你可以用上HTML5的標簽
<header>..........</header>

然後有些原來用js實現的東西可以通過html5來實現,當然不支持html5的瀏覽器最好還是用js來彌補一下。
比如原先你可能驗證email是通過js的
<input type="text" value="email" />
現在你可以利用html5
<input type="email" value ="email" />
讓瀏覽器自動驗證email,但是js部分最好不要舍棄,還是要保留的,這樣的話一些不支持HTML5的瀏覽器還是能夠正常使用的。

網頁重構和web開發前端有什麼區別嗎

網頁重構是web前端開發的一部分。
網頁重構主要技能是:html+css
web前端開發主要技能:html+css+js

在一些小的公司沒有分的那麼清楚,職位名稱也不叫這個,叫美工,做的工作比較雜,除了上面的,還包括,網頁設計和PS。

希望能幫助到您!點贊吧!

❹ 如何通過模塊化的方式讓javascript代碼避免重復執行

可以使用mole模式對代碼進行重用和模塊化。 假設在文件1.js定義mole如下:
var Mole = (function(plication) {
var _private = '';//private variable here

var plication = {};
plication.foo = function() {
if(...) {
for(...) {
//define your plication here
}
}
};

return plication;//return the public variable
} (Mole || {}));

在你的文件2.js中就可以這樣使用:
var Mole = (function(plication) {
return plication;
} (Mole || {}));

Mole.foo();//use the method defined in 1.js

這樣就把一個mole分割到了多個文件中,將代碼重復部分定義為 public ,彼此可以交叉訪問和使用,因為我採用的是松耦合,也可以對函數進行重構,如下:
var Mole = (function(plication) {
plication.foo = function() {
//refactor method foo here
}
return plication;
} (Mole || {}));

而私有部分則定義為 private ,一般不建議訪問彼此的私有對象。

❺ 急求一份 Vue.js 2.5 + cube-ui 重構餓了么

介紹
Vue.js(讀音 /vjuː/, 類似於view)是一套構建用戶界面的漸進式框架。與其他重量級框架不同的是,Vue 採用自底向上增量開發的設計。Vue 的核心庫只關注視圖層,並且非常容易學習,非常容易與其它庫或已有項目整合。另一方面,Vue 完全有能力驅動採用單文件組件和Vue生態系統支持的庫開發的復雜單頁應用。

Vue.js 的目標是通過盡可能簡單的 API 實現響應的數據綁定和組合的視圖組件 。

Vue.js 自身不是一個全能框架--它只聚焦於視圖層。因此它非常容易學習,非常容易與其它庫或已有項目整合。另一方面,在與相關工具和支持庫一起使用時,Vue.js 也能完美地驅動復雜的單頁應用。

特點
易用

已經會了HTML,CSS,JavaScript?即刻閱讀指南開始構建應用。

靈活

簡單小巧的核心,漸進式技術棧,足以應付任何規模的應用。

性能

20kb min+gzip 運行大小、超快虛擬 DOM 、最省心的優化。

學習前提
Vue.js 的 API 是參考了AngularJS、KnockoutJS、Ractive.js、Rivets.js。所以建議學習Vue.js之前,對上述 4 個框架系統做些了解。

❻ javascript問題,關於重構window.alert()後,然後調用window原本的window.alert()的方法

我的理解是這樣的。

window._alert=window.alert//臨時保存一下;
window.alert=function(){
//寫你重構的方法;
return;
}
//下面你想恢復的話就很簡單了
window.alert=window._alert;

❼ 20行js代碼實現的貪吃蛇大戰

稍等,我先留個坑,一會兒上電腦看看

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"><title>貪吃蛇重構</title><style>
body {display: flex;height: 100vh;margin: 0;padding: 0;justify-content: center;align-items: center;}</style>
</head>
<body>
<canvas id="can" width="400" height="400" style="background-color: black">對不起,您的瀏覽器不支持canvas</canvas>
<script>var snake = [41, 40], //snake隊列表示蛇身,初始節點存在但不顯示direction = 1, //1表示向右,-1表示向左,20表示向下,-20表示向上
food = 43, //食物的位置
n, //與下次移動的位置有關box = document.getElementById('can').getContext('2d');//從0到399表示box里[0~19]*[0~19]的所有節點,每20px一個節點function draw(seat, color) {box.fillStyle = color;box.fillRect(seat % 20 *20 + 1, ~~(seat / 20) * 20 + 1, 18, 18);//用color填充一個矩形,以前兩個參數為x,y坐標,後兩個參數為寬和高。}
document.onkeydown = function(evt) {//當鍵盤上下左右鍵摁下的時候改變directiondirection = snake[1] - snake[0] == (n = [-1, -20, 1, 20][(evt || event).keyCode - 37] || direction) ? direction : n;};
!function() {snake.unshift(n = snake[0] + direction);//此時的n為下次蛇頭出現的位置,n進入隊列 if(snake.indexOf(n, 1) > 0 || n < 0 || n > 399 || direction == 1 && n % 20 == 0 || direction == -1 && n % 20 == 19) {//if語句判斷貪吃蛇是否撞到自己或者牆壁,碰到時返回,結束程序return alert("GAME OVER!");}draw(n, "lime"); //畫出蛇頭下次出現的位置if(n == food) { //如果吃到食物時,產生一個蛇身以外的隨機的點,不會去掉蛇尾while (snake.indexOf(food = ~~(Math.random() * 400)) >= 0);draw(food, "yellow");} else { //沒有吃到食物時正常移動,蛇尾出隊列draw(snake.pop(),"black");}setTimeout(arguments.callee, 150);//每隔0.15秒執行函數一次,可以調節蛇的速度
}();
</script>
</body>
</html>

這不是我寫的,是我看見的那個網址裡面寫的詳細的。這個提交是電腦端,我發現一提交就自動壓縮,亂了。

❽ javascript 為什麼要重構

JavaScript是前台代碼中重要組成部分,隨著版本的延續,產品越做越大,JavaScript層面的重構,需要在整個過程中逐步強化起來。
當代碼量達到一定程度,JavaScript最好能夠與頁面模塊組件(例如自定義的FreeMarker標簽)一起被模塊化。
模塊化帶來的最大好處就是獨立性和可維護性,不用在海量的js中定位問題位置,簡單了,也就更容易被理解和接受,更容易被定製。
模塊之間的依賴關系最好能夠保持簡單,例如有一個common.js,成為最通用的函數型代碼,不包含或者包含統一管理的全局變數,要求其可以獨立 發布,其他組件js可以輕松地依賴於它。舉個例子,我們經常需要對字元串實現一個trim方法,可是js本身是不具備的,那麼就可以在這個 common.js中擴展string的prototype來實現,這對外部的使用者是透明的。
模塊劃分和命名空間
使用命名空間是保持js互不幹擾的一個好辦法,js講究起面向對象,就必須遵循封裝、繼承和多態的原則。
參照Java import的用法,我希望命名空間能帶來這樣的效果,看一個最簡單的實例吧:
我有一個模塊play,其中包含了一個方法webOnlinePlay,那麼在沒有import這個模塊的時候,我希望是js的執行是錯誤的:
webOnlinePlay(); //Error! 無法找到方法

但是如果我引入了這個模塊:
import("play"); webOnlinePlay(); //正確,能夠找到方法

其實實現這樣的效果也很簡單,因為默認調用一個方法webOnlinePlay()的實質是:window.webOnlinePlay(),對嗎?
所以在import("play")的時候,內部實現機制如下:
var mole = new playMole();

對於這個模塊中的每一個方法,都導入到window對象上面,以直接使用:
window[methodName] = mole[methodName];

其實這里並沒有什麼玄機,但是這種即需即取的思想卻給前端重構帶來了一個思路,一個封裝帶來的可維護性增強的思路,不是嗎?

❾ 求一個ajax重構的js

響應(伺服器對瀏覽器說話): 表現一:PrintWriter out = response.getWriter(); out.write("旺旺");
解決一: response.setContentType("textml; charset=utf-8"); out.write("<meta http-equiv='Content-Type' content='textml; charset=utf-8'>"); meta標記可以省略表現二:jsp中的中文亂碼,因為jsp本質上還是Servlet,它的所有內容是通過out.write向客戶端發送的。
解決二: <%@ page contentType="textml; charset=utf-8"> 本質上就是:response.setContentType("textml; charset=utf-8"); <meta http-equiv='Content-Type' content='textml; charset=utf-8'> meta標記可以省略

請求(瀏覽器對伺服器說話):request.getParamenter得到客戶端請求參數 解決方法一:硬編碼 String name = new String(luanName.getBytes("接受"), "發送"); 優點:對get,post請求都有效; 缺點:當請求欄位較多時,不利於處理;
解決方法二:只對post有效 request.setCharacterEncoding("gbk"); 必須在request.getParamenter方法調用之前設置。(代碼放在第一行)
解決方法三:只對get有效 修改server.xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="GBK" />