《Nodejs开发加密货币》之十二:静态网站开发全景扫描

news/2024/5/16 6:15:20/文章来源:https://blog.csdn.net/imfly/article/details/51388053

前言

在前面的入门部分,介绍了Nodejs在前端开发中的应用,并通过具体项目说明了Nodejs在比特币客户端领域被广泛应用。当时为了介绍Nodejs入门技术,一切都是从头创建,没有引入前端框架。但在具体的项目实践中,前端是有框架可以选择的,效率和体验会有明显提升。

具体到前端框架,我的选择是Ember.js。Ember给开发带来一种飞一般的感觉,如果问前端框架哪家强,我会毫不犹豫的说Ember。(具体为什么,网上仍然争论不休,本文不做讨论)

本文重点介绍静态网站的类型,亿书官网的技术选型,以及在开发亿书官网时体会到的Ember使用的几个大坑。

亿书官网介绍

1.资源信息

亿书官网: http://ebookchain.org 源码: https://github.com/Ebookchain/ebookchain.org

截图如下:

ebookchain-official-site

这是一个简单的静态网站,如果不考虑扩展性,单纯使用div + css + javascript的形式,对于美工较好的前端来说,就是半天的时间。

当然,对于我这样,习惯了后台开发产品的人,实际花费的时间也不多。从安装使用,搭建工程,到插件开发,引入第三方库,都统统了解了一下,所以才有了很爽快的感觉。

2.功能特点

一个静态网站还要什么特殊功能吗?好看,能传达产品信息,不就行了吗?不过,既然是研究,就得多少弄点特色出来。亿书,主要实现了以下几个功能(这些功能,很多网站都有,我把它集中到一起,因此,亿书官网可以作为一个init工程来用):

  • 导航动画:当滚动页面的时候,网站的header会动态调整。这个我已经抽出来,做成了Ember的插件,源码地址:https://github.com/imfly/ember-cli-animated-header

  • 滚动事件:Ember没有对Scroll事件的处理。这里为Ember提供了响应Scroll事件的能力,抽出的插件在这里: https://github.com/imfly/ember-cli-scroller

  • SVG动画: 当打开网站的时候,会看到第一页ebookchain的动画效果;

  • 全页展示: 滚动页面,页面会按照屏幕,逐个显示出来,自动适配屏幕大小。封装的插件在这里: https://github.com/imfly/ember-cli-fullPagejs

  • 多语言支持: 提供了英文和中文两种语言,默认是英文,咱也走国际范;

  • 模块布局: 产品特征、合作伙伴部分(甚至footer部分)直接用的json数据,完全按照mvc模式进行分离,添加、修改、删除、扩展都很方便,无需动刀页面;
  • 自动构建: 一键导出静态页面,合并压缩js,css等文件;
  • 一键部署

多语言支持和扩展性,显然要比纯粹的静态页面好处多多。细心的小伙伴,一定会发现,类似的主页非常多,有的基本上完全一样。事实上,很多是直接拷贝他人的静态页面,有了亿书官网代码,建立类似的主页,扩展和修改就会简单很多。

3.技术选型

开发静态网站,可用的方案有很多,我尝试了下面三种:

(1)自己开发设计

为了延续前面的工作,最初在《Nodejs开发加密货币》 入门部门提供的实例程序基础上构建了一个应用,用来输出静态页面。写到最后,发现在走ember-cli等现有产品的老路,果断放弃。(代码已经废弃删除)

(2)使用第三方产品

这类产品,有人叫做静态站点生成器,最早流行的是WordPress。不过,基于Nodejs并在github上被广泛关注的,有Wintersimith,Assemble,Metalsmith,Hexo,DocPad等等。这类产品多是面向技术人员,要具备学习掌握基本安装和使用的能力。

这类产品的特点,就是帮你解决了主题、转化和部署等工作,把内容创作给你留下,极大的简化静态页面的生成过程。其原理,与我现在使用 gitbook-summary 撰写电子书一样。试用了其中两款,没有简单到哪去,因此,也不是俺的菜。

(3)借助开发框架

个性化的产品,当然还得自己开发设计,只不过代码的结构和后期的处理,可以交由现成的框架产品。这样,即保证了开发设计的工作效率,也可获得更大的代码处理自由度。缺点可能是,技术门槛会高一些。

亿书选择使用Ember作为前端开发框架,涉及的产品包括:官方网站、各平台的客户端。把可以共享的部分,全部抽取出来,独立为基本的组件,方便各产品共享使用,会大大提高产品线的开发进度。试用了一下Ember,感觉很爽,不再它顾。

与Ember的前仇旧恨

之前接触过ember,那应该是1.0版本以前的事情,说起来也得有2年多了吧。当初ruby on rails火热,出来的discourse论坛就是以RoR为后台,用Ember开发的前端,很酷,真有点ambitions的感觉(Ember的宣传口号)。

不过,试用了一下,用后台的思路去开发前端应用,有点撕裂,很多东西不对路。生搬硬套后端的MVC模式,除了使开发更复杂,感觉没有太大的突破。另外,Ember是封装最为严格的前端框架,市面上大量现成的第三方开发包不能直接简单的引入使用,也成为其被受诟病的地方。

这次,为了开发亿书的官方网站,也为了给日后客户端的开发选择一个技术方案,重新看了看Ember。不看不知道,一看,我了个去,简直就是按照自己当年的期望在改进,试用了一下,岂止一个爽字了得。真心感谢,这些踏踏实实做事的团队,他们真的非常ambitions。对美丽的东西,我们得学着欣赏。

理解Ember几个让人迷乱的深“坑”

对某些小伙伴来说,ember的学习曲线还是陡了些。这里把拉几个Ember的“不良”习惯,不至于一试用就被泼了冷水。入门文章,网上有很多,就不重复了。这里提示性的,把我理解的、需要提醒小伙伴们注意的地方,简单说说。

1.什么是前端框架?

貌似高深的东西,其实也不过是一个js文件而已。因此,您完全可以像用其他js文件一样,在自己的页面里引入和使用。既然它叫框架,显然是提供了特定的规则,所以学习它的重点,就是要掌握这些规则。掌握不好,自然就会掉进“坑”里。

为什么要这么说,是因为Ember官方文档实在不是个好东西,它没有一个整体的概念,有时候让人无从知晓“为什么会如此”。即便是对细节的介绍,也不是那么细,有时候需要结合源码去理解。再者,版本、Api变化太快。这些在两年前,已经被人提出来,现在仍然没有太大改进。可见团队是多么“坚持”的一帮哥们。

2.一定要使用它的命令行工具Ember-cli

这个就别犹豫了,虽然可以直接使用js文件,但是没有Ember-cli这样强有力的命令行工具,使用Ember的难度会陡增。这个工具,让开发Ember应用,如开发后台程序,特别是用惯了ruby on rails的朋友,会非常亲切。从建立工程、产生各类逻辑代码,到测试、部署,等等,该工具(或通过插件)包揽了一切。

不习惯命令行开发?当我没说。

3.在浏览器上安装使用ember-inspector插件

这个必须有。在ruby on rails里,产生的路由等信息,可以在命令行里查看。但是,针对前端应用,只能在前端查看。通过该工具,可以掌握生成的路由、控制器、视图组件等各类对象信息,以及它们之间的对应关系,还能点击对应对象,查看对应方法和加载的数据。更主要的是,Ember默认生成的路由和视图等也被罗列了出来,如indexRoute,如图:

ember-inspector

4.Ember提倡的MVC模型里没有了VC

在Ember的MVC模型里,之前的版本,M:代表model,V: view(外加helper,component),C:controller,路由route单独存在。2.0版本以后,这个模式改变了,VC部分逐步剔除,取而代之的是router + model + component的形式。

或者说,V的内容变成了component,C的内容放在了router里。个人看来,这应该是理性回归,因为之前的版本里,controller能做的事情,router也照样能做,留着controller只能是一个概念的实现,本质上没什么用处。

当然,目前的版本还保留着控制器和视图(可以通过插件来用),但是能不用就别用了。

5.有了组件,自然就没了全局模板layout和局部模板partial的存在了

理解这个很重要。一方面,Ember号称面向未来,今天开发的UI组件component,在以后也能被使用。以后的版本里,组件的地位更加重要。所以,以前可能对文章列表,比如:post-item的处理,就是写一个局部模板partial来实现重用,今天用component就好了。partial不再被支持。

另一方面,application.hbs本身就相当于一个layout.hbs文件,作为单页面应用,自然就没有所谓layout的存在,这与后台使用handlebar.js有区别。它的渲染层次如下:

views-render

这张图,权且简单的描述一下Ember的视图渲染过程,动态图像才会更直观。事实上,它还可以更复杂一些,把一些钩子方法也放进去,这样对于Ember的数据传递、视图渲染等过程就会更加直观。

6.掌握路由、模型、UI组件等各部分的钩子方法,是玩转Ember的必经之路

设计独立静止的页面,肯定没有什么难度,所以简单的hello world程序看不出什么来。现实是,多个模型的关联操作,路由状态的转移变更,UI组件的交互嵌套,插件与主程序的良好扩展,才是开发中的常态,处理它们简单了,才真叫简单。

这部分,有必要单独总结一下,有机会再说,^_^。

7.本地插件开发,最容易忽视的小动作

这个不是ember的问题,但是ember的插件也是npm包,自然npm的问题也是它的问题。我们本地开发调试npm包(或ember-cli插件),通常使用npm linknpm link npm-name两个命令,将开发的npm包引入工程。最容易忽略的就是,运行完命令后,还应在工程的package.json里,添加对该包的依赖ember-cli-pluginName: '*'

事实上,也有不需要设置的。不过这么做,是最稳妥的方法。建议把这一个小步骤作为一个固定约束,会节省很多时间(俺这次被坑了大半天)。

总结

这里分享的是亿书官方网站的开发体会,仅仅一个星期的体验,并不能理解它的精髓,如果让你看完感觉不是那么回事,一定不是Ember的问题,而是作者我的能力所限。

Ember是个值得掌握的产品,这篇算做引子,接下来两篇,计划图解它的渲染过程和钩子方法,介绍它的插件开发,慢慢补全客户端开发部分的内容。

写本文时,涉及到的源码还在整理中,文档和测试没有添加,功能还不健全,如果喜欢Ember,欢迎参与该项目或star。

链接

本系列文章即时更新,若要掌握最新内容,请关注下面的链接

本源文地址: https://github.com/imfly/bitcoin-on-nodejs

电子书阅读: http://bitcoin-on-nodejs.ebookchain.org

涉及到的源码,如果觉得有用,欢迎通过star收藏

亿书官网源码: https://github.com/Ebookchain/ebookchain.org

全屏页面插件: https://github.com/imfly/ember-cli-fullPagejs

动画效果导航:https://github.com/imfly/ember-cli-animated-header

Ember滚动事件:https://github.com/imfly/ember-cli-scroller

参考

Ember官网: https://emberjs.com

Ember-cli官网: http://ember-cli.com

亿书官网: http://ebookchain.org

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_787681.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《大型网站系统与Java中间件》读书笔记(上)

2019独角兽企业重金招聘Python工程师标准>>> 前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 这本书买了一段时间了,之前在杭州没带过去,现在读完第三章&#xf…

修改.htaccess文件设置网站默认打开静态页面

为什么80%的码农都做不了架构师&#xff1f;>>> .htaccess文件设置网站默认打开静态页面的方法。首先复制如下代码&#xff1a; <Files ~ "^.(htaccess|htpasswd)$"> deny from all </Files> DirectoryIndex index.html index.php order den…

部署HTTPS让让网站安全运行,https证书的重要性

现在网络安全事件越来越多&#xff0c;随着各大浏览器对网络安全的重视&#xff0c;对HTTPS的强力支持&#xff0c;HTTPS已成为主流&#xff0c;企业要做的是防患于未然-部署SSL证书实行HTTPS加密&#xff0c;让数据在传输之初就得到保护。千万不要小看HTTPS对数据隐私的保护。…

企业网站安装SSL证书的优势

网站安装SSL证书和没有安装SSL证书有很大的区别&#xff0c;而安装SSL证书的网站不仅为网站安全带来了好处&#xff0c;同时也是为想要访问网站的客户提供了一个一个安全的上网环境。安装了SSL证书的网站有以下几点优势。 1.SEO优化。 现在大多数浏览器都优先抓取和收录安装了…

Comodo和SymantecSSL证书分别适合什么样的网站

Comodo和Symantec这两个品牌的SSL证书从价格上看就是两个极端。一般Comodo的SSL证书在同类型的SSL证书中价格最低&#xff0c;而Symantec的SSL证书在同类型的SSL证书中价格最高。两个品牌的定位不同&#xff0c;它们适合的网站也不同。 首先Comodo这个品牌现在已经正式更名为S…

免费SSL证书是否适合企业类网站

ssL证书因为成本、维护等原因是需要收费的&#xff0c;但是有很多机构觉得每年ssl证书都要付费太费钱了&#xff0c;就开始研究出了免费ssl证书&#xff0c;今天就由ssl盾小编讲解企业网站适不适合这种免费ssl证书。 企业网站分为展示型、商城型、综合型&#xff0c;免费ssl证书…

ssl证书安装之后对网站有哪些好处

说实在的&#xff0c;现在身边很多人都建议有网站的人安装SSL证书&#xff0c;都知道安装ssl证书对网站很好&#xff0c;那到底有什么好处呢&#xff1f; 1.网站传输信息加密。要知道没有安装SSL证书的网站使用的还是http连接&#xff0c;没有加密&#xff0c;也无法识别信息来…

OV SSL证书适合的网站

OV SSL证书是SSL数字证书的一种&#xff0c;又称组织验证数字证书。这款SSL证书不适合个人申请&#xff0c;只适合企业申请&#xff0c;那么OV SSL证书具体是何哪些网站呢&#xff1f; 首先&#xff0c;要知道申请OV SSL证书是需要域名验证电话验证的&#xff0c;这就需要申请者…

在大型电商网站中哪些SSL证书比较适合

大型电商涉及的资金往来比较多&#xff0c;DV SSL证书已经不太适合&#xff0c;OV SSL证书和EV SSL证书的安全等级比DV SSL证书要高很多&#xff0c;是比较适合大型电商类的网站。其中Digicert和GlobalSign这两个SSL证书品牌是比较不错的选择。 Digicert和GlobalSign都比较侧重…

SSL证书中的安全站点证书对金融银行网站的好处

对于涉及很多安全隐私的金融行业和银行网站来说&#xff0c;一个足够安全的上网环境是必要的&#xff0c;而SSL证书中的Digicert的安全站点证书在这一方面有很大的优势。 Digicert的安全站点SSL证书其实是原Symantec的SSL证书&#xff0c;自从Digicert合并了Symantec这个牌子的…

建站用什么cms_逐浪CMS告诉你安全性高的CMS建站系统是怎样一种体验?

CMS建站系统有使用者非常多&#xff0c;很多个人站长或者小企业者都是选择了用CMS来建站&#xff0c;可是建站容易运营难&#xff0c;网站的安全性就是一个非常大的问题。但并不是所有的CMS的安全问题都是这么令人头疼。在与逐浪CMS客户服务经理一次偶然的聊天过程当中&#xf…

基于SSM+VueCDN 的二手房交易网站设计与实现

之前的练手项目简单双向交易,页面有很多Vue模块的实现所以只有两个html,且细节粗糙 找房情况,搜索框为axios异步 进入预约界面 付款后

基于SpringBoot与VueCDN+ElementUI实现的教育辅导网站的设计与实现(毕业设计项目)

有简单使用springsecurity 页面效果: 登录后 教师认证后 私教列表与辅导班列表相似填写发布后

公司网站能不能使用免费ssl证书?

ssl证书使http站点转换为https站点&#xff0c;可以加密防劫持&#xff0c;防篡改等 下面为您解答下公司站点能不能使用免费ssl证书。 公司网站分为展示型&#xff0c;商城型&#xff0c;大型综合性&#xff0c;在线交易型等站点. 如果公司网站没有用户名系统&#xff0c;仅仅…

SSL证书到期后在网站自助续费

网站域名SSL证书都是存在使用有效期的&#xff08;一次只能注册1年或2年&#xff09;&#xff0c;域名证书过期后&#xff0c;Web网站就会出现安全警告&#xff0c;严重影响用户访问。那么SSL证书到期前该如何自助续费呢&#xff0c;下面SSL盾小编以SSLDUN为例进行具体说明下自…

java反射优化_「java反射」Java 反射 - seo实验室

java反射Class 对象如果想在运行时使用类型信息&#xff0c;就必须首先获得对恰当的Class对象的引用。getClass()方法来获取Class引用。这个方法属于Object类的一部分&#xff0c;它将返回该对象实际类型的Class引用。拥有Class对象可以使用getSuperClass()方法查询其基类&…

企业网站安装SSL证书的优势

网站安装SSL证书和没有安装SSL证书有很大的区别&#xff0c;而安装SSL证书的网站不仅为网站安全带来了好处&#xff0c;同时也是为想要访问网站的客户提供了一个一个安全的上网环境。ssl盾小编就总结了安装了SSL证书的网站有以下几点优势。 1.SEO优化。 现在大多数浏览器都优…

免费SSL证书是否适合企业类网站

ssL证书因为成本、维护等原因是需要收费的&#xff0c;但是有很多机构觉得每年ssl证书都要付费太费钱了&#xff0c;就开始研究出了免费ssl证书&#xff0c;今天就讲解企业网站适不适合这种免费ssl证书。 企业网站分为展示型、商城型、综合型&#xff0c;免费ssl证书比较适合展…

在大型电商网站中哪些SSL证书比较适合

大型电商涉及的资金往来比较多&#xff0c;DV SSL证书已经不太适合&#xff0c;OV SSL证书和EV SSL证书的安全等级比DV SSL证书要高很多&#xff0c;是比较适合大型电商类的网站。其中Digicert和GlobalSign这两个SSL证书品牌是比较不错的选择。ssl盾小编带大家认识这些SSL自助。…

html网站实现站内搜索功能_房地产网站该怎样建设,要如何运营?

房地产一直在国民经济中占有重要地位。特别是近年来&#xff0c;房价一直在上涨&#xff0c;大型房地产公司赚了很多钱。今天&#xff0c;房地产开发商正在通过互联网进行新一轮的竞争。通过互联网&#xff0c;他们可以获得一定数量的页面浏览量&#xff0c;在传播自己的房地产…