南京排名推广(南京产品推广)
30
2023-01-02
本文目录一览:
空白无效文件,删除即可。需要在网站的页面模板文件夹中,删除掉该代码即可。
制作自己的网站,需要懂html、css、JavaScript、php等编程语言,要准备好存储网页的服务器和访问的域名。幸运的现在有很多网站模板程序可以选择,对于自身美工和编程要求不高了,整个过程不算复杂。
下载好CMS系统模板后,把该系统上传至我们的服务器的WWW目录里面,然后登录CMS系统后台,根据对应的主题模板进行安装,一个自己的网站就这样搭建完成啦。
想要开发网站就要有勇于战胜困难的信心,首先要对自己要做什么样的网站有一个清晰的认识,其次要对网站的栏目和内容进行设计并做成效果图,最后根据效果图开发出能够投入使用的网站,网站的开发就完成了。
1、进行定位分析,要清楚自己想要做一个什么类型的网站,网站针对的用户群体是什么,网站的风格以及网站的域名是什么样的都要仔细考虑清楚,将这些都想好才能有下一步的分析。
2、申请域名和设计草图,构思好自己的网站后,要申请一个域名,域名要简单好记,还要与自己的网站logo网站内容相契合,然后在构思一下网站的基本结构,栏目,内容,如果觉得在大脑中形成的印象不够深刻的话,可以自己找一个纸将大概的网站页面画下来,然后找专门的美工,根据图纸将网站制作出效果图。
3、开发网页,根据美工制作的效果图,就可以找专门的技术人员开发网站了,已经有了自己的域名,在这个域名的链接开发自己网站,选择一个好的服务器,在网站正式上线之前,先行测试一下看是否有什么问题,没有问题就可以正是上线使用了。如此一个网站的开发就基本完成了,要想获得长远的发展还要进行网站的优化,做网站是一个长期的过程,不能掉以轻心。
是。有javascript的网页仍是静态网页,不是动态网页。不是网页上有动态的元素才是动态网页。假如一个网页有javascript花花绿绿的,它仍是静态网页,所谓的静态、动态是指能否与数据库产生交互。只有PHP、asp、JSP这些网页,才是动态网页。静态网页与动态网页的区别,动态网页以.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号——“?”,静态网页:以.htm、.html、.shtml、.xml等形式为后缀。
在服务器端运行的程序、网页、组件,属于动态网页,它们会随不同客户、不同时间,返回不同的网页,例如HTML, ASP、PHP、JSP、ASP.net、CGI等。静态网页运行于客户端的程序、网页、插件、组件,属于静态网页,下面列出的四种情况都不一定是动态页面,带有音频和视频,带有flash动画,带有css动画,带有javascript动画。千锋教育截止目前已在北京、深圳、上海、广州、郑州、成都、大连等20余个核心城市建立直营校区,服务近20万学员、近千所高校和数万家企业。
这是源于两年前,当我在做人生中第一个真正意义上的网站时遇到的一个问题
该网站采用前后端分离的方式,由后端的
REST
接口返回
JSON
数据,再由前端渲染到页面上。
同许多初学
Javascript
的菜鸟一样,起初,我也是采用拼接字符串的形式,将
JSON
数据嵌入
HTML
中。开始时代码量较少,暂时还可以接受。但当页面结构复杂起来后,其弱点开始变得无法忍受起来:
书写不连贯。每写一个变量就要断一下,插入一个
+
和
"。十分容易出错。
无法重用。HTML
片段都是离散化的数据,难以对其中重复的部分进行提取。
无法很好地利用
template
标签。这是
HTML5
中新增的一个标签,标准极力推荐将
HTML
模板放入
template
标签中,使代码更简洁。
当时我的心情就是这样的:
这TMD是在逗我吗
为了解决这个问题,我暂时放下了手上的项目,花了半个小时实现一个极简易的字符串模板。
需求描述
实现一个
render(template,
context)
方法,将
template
中的占位符用
context
填充。要求:
不需要有控制流成分(如
循环、条件
等等),只要有变量替换功能即可
级联的变量也可以展开
被转义的的分隔符
{
和
}
不应该被渲染,分隔符与变量之间允许有空白字符
例子:
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
}
实现
先写下函数的框架:
function
render(template,
context)
{
}
显然,要做的第一件事便是
匹配模板中的占位符。
匹配占位符
匹配的事,肯定是交给正则表达式来完成。那么,这个正则表达式应该长什么样呢?
根据
需求
1、2
的描述,我们可以写出:
var
reg
=
/\{([^\{\}]+)\}/g;
至于需求
3,我第一个想到的概念是
前向匹配,可惜
Javascript
并不支持,只好用一个折衷的办法:
var
reg
=
/(\\)?\{([^\{\}\\]+)(\\)?\}/g;
//
若是第一个或第三个分组值不为空,则不渲染
现在,代码应该是这样:
function
render(template,
context)
{
var
tokenReg
=
/(\\)?\{([^\{\}\\]+)(\\)?\}/g;
return
template.replace(tokenReg,
function
(word,
slash1,
token,
slash2)
{
if
(slash1
||
slash2)
{
//
匹配到转义字符
return
word.replace('\\',
'');
//
如果
分隔符被转义,则不渲染
}
//
...
})
}
占位符替换
嗯,正则表达式确定了,接下来要做的便是替换工作。
根据
需求2,模板引擎不仅要能渲染一级变量,更要渲染多级变量。这该怎么做呢?
其实很简单:将
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
指定的变量并不存在,这时上面的代码便会报错。为了更好的体验,代码最好有一定的容错能力:
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
'';
//
如果当前索引的对象不存在,则直接返回空字符串。
}
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
行。
将函数挂到
String
的原型链
甚至,我们可以通过修改原型链,实现一些很酷的效果:
String.prototype.render
=
function
(context)
{
return
render(this,
context);
};
之后,我们便可以这样调用啦:
"{greeting}!
My
name
is
{
author.name
}.".render({
greeting:
"Hi",
author:
{
name:
"hsfzxjy"
}
});
//
Hi!
My
name
is
hsfzxjy.
关于javascript网站模板和web前端网站模板的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注云尚网络www.ysfad.net。
发表评论
暂时没有评论,来抢沙发吧~