欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

javascript網(wǎng)站模板,javascript網(wǎng)站模板代碼

網(wǎng)上買了一個(gè)網(wǎng)站模板,加載了一個(gè)第三方的JS文件,導(dǎo)致網(wǎng)站首頁打開速度很慢,求大神幫忙解決!

空白無效文件,刪除即可。需要在網(wǎng)站的頁面模板文件夾中,刪除掉該代碼即可。

成都創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)蒙城,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

如何使用網(wǎng)站模板

具體的使用情況告訴你:

1、下載模板之后,應(yīng)該在文件中有一個(gè)說明,打開記事本樣式的文件,首先看看里面的如何進(jìn)入后臺(tái)模板。一般情況是:首先下載一個(gè)asw文件(相當(dāng)于iss),然后在地址欄中輸入:回車。輸入用戶名或者密碼(一般用戶名:admin密碼是:admin或者admin888)

2、進(jìn)入后臺(tái)之后,一般有“文章”“下載”之類的模塊,在里面的相應(yīng)位置添加內(nèi)容,然后保存。

3、最后別忘記,重新生成首頁功能。一般是在“管理”模塊中。

說明:

如果不能生成,在每個(gè)模塊中,有一個(gè)生成html功能,打開之后,先生成地圖功能,然后點(diǎn)擊生成全部模塊。

上述說的應(yīng)該算是很明白了,如果還是不明白,請給我留言,具體操作給你演示。

Javascript 字符串模板的簡單實(shí)現(xiàn)

這是源于兩年前,當(dāng)我在做人生中第一個(gè)真正意義上的網(wǎng)站時(shí)遇到的一個(gè)問題

該網(wǎng)站采用前后端分離的方式,由后端的

REST

接口返回

JSON

數(shù)據(jù),再由前端渲染到頁面上。

同許多初學(xué)

Javascript

的菜鳥一樣,起初,我也是采用拼接字符串的形式,將

JSON

數(shù)據(jù)嵌入

HTML

中。開始時(shí)代碼量較少,暫時(shí)還可以接受。但當(dāng)頁面結(jié)構(gòu)復(fù)雜起來后,其弱點(diǎn)開始變得無法忍受起來:

書寫不連貫。每寫一個(gè)變量就要斷一下,插入一個(gè)

+

"。十分容易出錯(cuò)。

無法重用。HTML

片段都是離散化的數(shù)據(jù),難以對其中重復(fù)的部分進(jìn)行提取。

無法很好地利用

template

標(biāo)簽。這是

HTML5

中新增的一個(gè)標(biāo)簽,標(biāo)準(zhǔn)極力推薦將

HTML

模板放入

template

標(biāo)簽中,使代碼更簡潔。

當(dāng)時(shí)我的心情就是這樣的:

這TMD是在逗我嗎

為了解決這個(gè)問題,我暫時(shí)放下了手上的項(xiàng)目,花了半個(gè)小時(shí)實(shí)現(xiàn)一個(gè)極簡易的字符串模板。

需求描述

實(shí)現(xiàn)一個(gè)

render(template,

context)

方法,將

template

中的占位符用

context

填充。要求:

不需要有控制流成分(如

循環(huán)、條件

等等),只要有變量替換功能即可

級聯(lián)的變量也可以展開

被轉(zhuǎn)義的的分隔符

{

}

不應(yīng)該被渲染,分隔符與變量之間允許有空白字符

例子:

render('My

name

is

{name}',

{

name:

'hsfzxjy'

});

//

My

name

is

hsfzxjy

render('I

am

in

{profile.location}',

{

name:

'hsfzxjy',

profile:

{

location:

'Guangzhou'

}

});

//

I

am

in

Guangzhou

render('{

greeting

}.

\\{

This

block

will

not

be

rendered

}',

{

greeting:

'Hi'

});

//

Hi.

{

This

block

will

not

be

rendered

}

實(shí)現(xiàn)

先寫下函數(shù)的框架:

function

render(template,

context)

{

}

顯然,要做的第一件事便是

匹配模板中的占位符。

匹配占位符

匹配的事,肯定是交給正則表達(dá)式來完成。那么,這個(gè)正則表達(dá)式應(yīng)該長什么樣呢?

根據(jù)

需求

1、2

的描述,我們可以寫出:

var

reg

=

/\{([^\{\}]+)\}/g;

至于需求

3,我第一個(gè)想到的概念是

前向匹配,可惜

Javascript

并不支持,只好用一個(gè)折衷的辦法:

var

reg

=

/(\\)?\{([^\{\}\\]+)(\\)?\}/g;

//

若是第一個(gè)或第三個(gè)分組值不為空,則不渲染

現(xiàn)在,代碼應(yīng)該是這樣:

function

render(template,

context)

{

var

tokenReg

=

/(\\)?\{([^\{\}\\]+)(\\)?\}/g;

return

template.replace(tokenReg,

function

(word,

slash1,

token,

slash2)

{

if

(slash1

||

slash2)

{

//

匹配到轉(zhuǎn)義字符

return

word.replace('\\',

'');

//

如果

分隔符被轉(zhuǎn)義,則不渲染

}

//

...

})

}

占位符替換

嗯,正則表達(dá)式確定了,接下來要做的便是替換工作。

根據(jù)

需求2,模板引擎不僅要能渲染一級變量,更要渲染多級變量。這該怎么做呢?

其實(shí)很簡單:將

token

.

分隔開,逐級查找即可:

var

variables

=

token.replace(/\s/g,

'').split('.');

//

切割

token

var

currentObject

=

context;

var

i,

length,

variable;

//

逐級查找

context

for

(i

=

0,

length

=

variables.length,

variable

=

variables[i];

i

length;

++i)

currentObject

=

currentObject[variable];

return

currentObject;

不過,有可能

token

指定的變量并不存在,這時(shí)上面的代碼便會(huì)報(bào)錯(cuò)。為了更好的體驗(yàn),代碼最好有一定的容錯(cuò)能力:

var

variables

=

token.replace(/\s/g,

'').split('.');

//

切割

token

var

currentObject

=

context;

var

i,

length,

variable;

for

(i

=

0,

length

=

variables.length,

variable

=

variables[i];

i

length;

++i)

{

currentObject

=

currentObject[variable];

if

(currentObject

===

undefined

||

currentObject

===

null)

return

'';

//

如果當(dāng)前索引的對象不存在,則直接返回空字符串。

}

return

currentObject;

把所有的代碼組合在一起,便得到了最終的版本:

function

render(template,

context)

{

var

tokenReg

=

/(\\)?\{([^\{\}\\]+)(\\)?\}/g;

return

template.replace(tokenReg,

function

(word,

slash1,

token,

slash2)

{

if

(slash1

||

slash2)

{

return

word.replace('\\',

'');

}

var

variables

=

token.replace(/\s/g,

'').split('.');

var

currentObject

=

context;

var

i,

length,

variable;

for

(i

=

0,

length

=

variables.length,

variable

=

variables[i];

i

length;

++i)

{

currentObject

=

currentObject[variable];

if

(currentObject

===

undefined

||

currentObject

===

null)

return

'';

}

return

currentObject;

})

}

除去空白行,一共

17

行。

將函數(shù)掛到

String

的原型鏈

甚至,我們可以通過修改原型鏈,實(shí)現(xiàn)一些很酷的效果:

String.prototype.render

=

function

(context)

{

return

render(this,

context);

};

之后,我們便可以這樣調(diào)用啦:

"{greeting}!

My

name

is

{

author.name

}.".render({

greeting:

"Hi",

author:

{

name:

"hsfzxjy"

}

});

//

Hi!

My

name

is

hsfzxjy.

文章名稱:javascript網(wǎng)站模板,javascript網(wǎng)站模板代碼
鏈接分享:http://chinadenli.net/article19/dsidhgh.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版自適應(yīng)網(wǎng)站品牌網(wǎng)站設(shè)計(jì)外貿(mào)網(wǎng)站建設(shè)外貿(mào)建站移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)