关注 JS 太久,会养成任何功能都用 JS 实现的习惯,而忘记了 HTML 与 CSS 也具备一定的功能特征。其实有些功能用 JS 实现吃力不讨好,我们要综合使用技术工具,而不是只依赖 JS。...5 things you don't need Javascript for 这篇文章就从 5 个例子出发,告诉我们哪些功能不一定非要用 JS 做。...虽然这做不了特殊动画效果,但如果只为了做一个普通的展开折叠功能,用 HTML 标签就够了。...总结 关于 CSS 可以实现哪些原本需要 JS 做的事,有很多很好的文章,比如: youmightnotneedjs。 You-Dont-Need-JavaScript。...讨论地址是:精读《不再需要 JS 做的 5 件事》· Issue #413 · dt-fe/weekly
为什么要在这个时候探索flv.js做直播呢?原因在于各大浏览器厂商已经默认禁用Flash,之前常见的Flash直播方案需要用户同意使用Flash后才可以正常使用直播功能,这样的用户体验很致命。...可以看出在浏览器里做直播,使用HTTP-FLV协议是不错的,性能优于RTMP+Flash,延迟可以做到和RTMP+Flash一样甚至更好。...flv.js兼容方案 由于目前flv.js兼容性还不是很好,要用在产品中必要要兼顾到不支持flv.js的浏览器。...缩短这个收集时间(也就是减少GOP长度)可以优化延迟,但这样做的坏处是导致视频压缩率不高,传输效率低。 关闭音视频服务器的I桢缓存可以优化延迟,坏处是用户看到直播首屏的时间变大。...浏览器端开启flv.js的Worker,多进程运行flv.js提升解析速度可以优化延迟,这样做的flv.js配置代码是:{ enableWorker: true, enableStashBuffer
A 和 B 都提供一个公开的公钥。A 把需要传递的信息,先用自己的私钥签名,再用 B 的公钥加密。B 接收到这串密文后,用自己的私钥解密,用 A 提供的公钥验签。 为什么要先签名后加密?...如果你先加密后签名,非法用户通过获取的公钥就可以破解签名,破解之后就可以替换签名。...详细的原理可以参考以下文档: RSA算法原理(一) RSA算法原理(二) node-rsa 在 node.js 中使用 rsa 算法,我们使用的是 node-rsa 这个包。...,所以我们需要把对象按一定的顺序排列并序列化成字符串再进行签名加密的操作 const serialize = (obj) => { const str = []; Object.keys(obj...,加上 Node 不适合做计算密集型的操作。
为什么要在这个时候探索flv.js做直播呢?原因在于各大浏览器厂商已经默认禁用Flash,之前常见的Flash直播方案需要用户同意使用Flash后才可以正常使用直播功能,这样的用户体验很致命。...可以看出在浏览器里做直播,使用HTTP-FLV协议是不错的,性能优于RTMP+Flash,延迟可以做到和RTMP+Flash一样甚至更好。...flv.js兼容方案 由于目前flv.js兼容性还不是很好,要用在产品中必要要兼顾到不支持flv.js的浏览器。...缩短这个收集时间(也就是减少GOP长度)可以优化延迟,但这样做的坏处是导致视频压缩率不高,传输效率低。 关闭音视频服务器的I桢缓存可以优化延迟,坏处是用户看到直播首屏的时间变大。...浏览器端开启flv.js的Worker,多进程运行flv.js提升解析速度可以优化延迟,这样做的flv.js配置代码是: 这里是优化后的完整代码 扫码下方二维码, 随时关注更多前端干货文章!
下面做网站小编就简单介绍一个方法,十分简单. 下面介绍以合并js文件为例 保留疑问 : JS 合并与 JS 压缩的区别 ? 分别对页面有什么影响?...,十分简单,GT_bin.js 为合并之后的文件名称 , /b是固定参数,文件合并之后,页面就只引用GT_bin.js就可以了,从而减少了js文件的引用,到达了减少http请求的次数,提高了网站的性能....缺点: #页面可能会加载到本页面不使用的代码。 不适用场景: #这种方式肯定不适用于大型的Web应用,且不论单文件代码量,业务的复杂性也不允许我们这样干(我没见过那个网站这样做的)。...往期热点文章: #做网站-如何用DIV+CSS做网页 #做网站-3家国外VPS主机商对比 #做网站-页面内锚点定位的几种方法 #做网站-如何将设计稿还原为网页 #做网站-面向对象面向过程的区别 #做网站...-必备的10款网站性能测试工具(推荐) #做网站-前端工程师都用啥编辑器 #做网站-虚拟主机与独立服务器区别 做网站公众平台(zwangz888)每天为您分享原创Web开发资讯,开发经验,为您的技能充电
电脑版的商城昨晚做完了,今天赶着做手机端的,提到手机端的网站第一个想到的就是要 适应不同手机屏幕的宽度,保证在不同手机上都能正常显示给用户,我之前做这类网站都是无脑引进bootstrap的。...(我现在知道的尚浅)目前我了解有 1.百分比法: 顾名思义,页面的元素的margin,padding,width,height,等等都用%来计算,CSS中的百分比中的百指的是什么,指的是父元素,所有百分比都是这样的...子元素宽度50%,那么父元素的宽度就是百,子元 素的padding-left:50%,父元素的宽度是百,子元素的margin-top:20%,那么父元素的高是百。...那就要用到js在页面加载时获取window的宽度(浏览器窗口的宽度)$(window).width();在开发手机页面的时候,一般我们设置最大宽度为640px,因为640px可以保证在至今最宽的手机上显示时网页两端刚好贴合屏幕...height:10.6rem; border:1px solid #000; box-sizing: border-box; } js
前言缘由JS中async/await异步调用,只能通过try-catch吗?你想听的故事:作为一个合格的全栈搬砖工,那必须文武双全,前后必备。...遂吾日三省吾身,偶发觉前端长时间不写有些落下,便抽用了摸鱼的时间,检查一下前端小老弟的代码。不查不知道,一查吓一跳。...小伙伴们可以看到,此时就掉入没有捕获异常的的坑了,非常遗憾,后续牵连接口一并因错误戛然而止,出错连坐!...插件库await-to-js是什么await-to-js 是一个辅助开发者处理异步错误的库await-to-js怎么下# npm安装npm i await-to-js --save# yarn安装yarn...add await-to-jsawait-to-js怎么写import to from 'await-to-js'const init = async () => { const [err, data
想知道他们有什么很棒的功能吗?继续阅读。...http://wisembly.github.io/basil.js/ Basil.js统一了session、localStorage和cookie,为你提供了一种处理数据的直接方法。...https://github.com/marcuswestin/store.js Store.js像其他东西一样处理数据存储。...但还有更多的功能,它的一个高级特性是让你更深入地访问浏览器支持。...事实上,它是localStorage的一个封装器,并使用HTML5模拟memcaches函数。在上面的文档中发现更多的功能。
pbootcms网站常用的参数标签汇总、以及操作过程中的一些bug问题解决方法,pboot网站二开,以下龙腾飞网络科技-小吴在建站实操中笔记记录,pbootcms建站教程/pb网站建设教程 保存使用非常方便...: 【PB建站教程】 pboot网站的留言板标签调用 适用范围:全站任意地方均可使用 标签作用:用于用户提交留言和调取留言记录 【1、留言提交表单】 提交 表单提交方式为post,表单中提交的字段名称需要与后台自定义表单中添加的字段一致...,使用内容列表的分页代码即可....:os] 用户操作系统 [message:bs] 用户浏览器 [message:askdate] 留言时间 [message:replydate] 回复时间 [message:***] 自定义的其它字段
今天我们来研究一下 Node.js 是如何做 GC 的。 GC,Garbage Collection,垃圾回收。在编程中,一般指的是内存自动回收机制,会定时将不需要用到的数据进行清除。...堆:存放对象等数据; 堆内存 Node.js 底层使用的是 V8,下面讲解一下 V8 的内存回收机制。 首先 JS 中所有的对象都会保存在堆内存中。...这种基于 copy 的算法,优点是可以很好地处理内存碎片的问题,缺点是会浪费一些空间作为搬移的空间位置,此外因为拷贝比较耗费时间,所以不适合分配太大的内存空间,更多是做一种辅助 GC。...,不要用 Buffer 做测试。...因为 Buffer 是 Node.js 特有的处理二进制的对象,它不是在 V8 中的实现的,是 Node.js 用 C++ 另外实现的,不通过 V8 分配内存,属于堆外内存。
1.配置安装好脚手架 2.留言板: <input type="text" v-model="value" @keydown.enter
第一步 当然还是准备工作了,在bootstrap官网下载好需要的东西了,怎么用官网已经写的很详细,在这就不细说了。...下载地址:http://v3.bootcss.com/getting-started/ 第二步 就是登陆和注册了 写在router文件中 index.js /*ucenter-登录*/router.post...,没有用Ajax,这里为了方便讲解,如果你写用Ajax请求的写法 请看:http://www.hubwiz.com/coursecenter 中的express课程 其中有详细的做法。...第三步 就是express的session问题了 在express 4.0之前的版本,像session之类的中间件是伴随express自动安装的, 网上有的教程使用的express版本正是4.0之前的版本...,所以在使用4.0及其之后版本的时候一定要注意这点。
add.php <?php error_reporting(0); include ("conn.php"); $id=$_POST['id']; $user=...
在一个项目当中,日志系统在项目中重要性在这里就不再累述,log4js是nodejs中的一个日志模块,通过设置其优先级别,可以打印出不同级别的日志,便于后续的系统分析。...下面来介绍一下log4js的具体使用,这里介绍的版本为2.8.0。...log4js的安装 安装很简单 npm install log4js -S log4js配置 在项目的根目录添加一个log目录,在该目录中新建indexjs,开始配置log4js var path =...根据天来创建日志的配置代码如下: var path = require("path"); const log4js = require('log4js'); log4js.configure({ appenders...log4js的使用 var express = require('express'); var router = express.Router(); const bodyParser = require
在上一篇文章介绍了Node.js基础API 接下来我们做一个案例,用Node.js实现静态资源服务器 目录结构 首先新键如下目录结构 config:存放一些配置文件 helper:辅助文件 template...:模板文件(后面会使用到模板引擎) app.js:入口文件 搭建服务 我们要根据客户端请求的url返回相应的文件/目录信息,所以我们要先搭建服务 使用http模块搭建 const http = require...中我们引入promisify模块引入,将相关文件操作封装成promise对象,这样可以使我们在读取文件时不用进行各种回调,通过async与await时同步的方式去做异步的事情。...我们还引入了自定义模块mime这个模块放置了文件类型对应的contentType,以确保我们发送给客户端正确的contentType helper/mime.js const path = require...(html|js|css|md)/ } 新键helper/compress.js const {createGzip,createDeflate} = require('zlib') module.exports
我们都知道,在foreach binding中,使用$index可以得到基于0的索引序号,但在列表显示中,我们更希望这个索引是从1开始的,怎么处理呢?
留言板是一个非常经典的小项目,适合刚接触 PHP 的朋友动手实践。通过这个项目,你可以学习如何用 PHP 和 MySQL 交互,如何处理用户输入,以及如何搭建一个完整的小应用。...留言板嘛,说白了就是一个让人可以留下文字的地方。简单来说,我们需要实现以下几点: 有人能留言:用户可以在页面上输入自己的昵称和留言内容,然后提交。...需求大概就这些,咱们就围绕这些来做。 数据库是核心,先设计表留言板的核心就是数据库。留言内容得保存到哪里呢?当然是 MySQL 里啦!...>最后总结到这里,一个简单的留言板就完成了!这个项目虽然小,但它涵盖了很多 Web 开发的基础知识,比如表单提交、数据库操作、分页功能、输入验证等。...希望这篇文章能帮你学会留言板的开发!如果有问题,欢迎留言交流~
项目中所需的sql: 1 create database form; 2 3 use form; 4 5 CREATE TABLE `message` ( 6 `id` tinyint
TitanGbook - Titan的留言板项目 项目介绍: 1. 单页面的简单实现留言板功能 2. 做了安全过滤,有效防止SQL注入与XSS等安全问题。 3....5. …… 演示站点: Titan留言板 部署环境: 前端 基于HTML5 + jQuery + ajax 开发 后端 基于PHP7 + Mysql5.7 开发 , 理论支持PHP5+ Mysql 5.4...部署完整的Web环境,推荐LNMP(Linux/Nginx/MySQL/PHP) 2. 将项目的源码部署在您的网站目录中. 3. 将项目目录中的 titangbook.sql 导入至您的数据库中。...编辑 conn.php ,配置相关的数据库连接信息。 To Do List: 目前还待开发的部分有: 1. 后台管理功能,能够管理用户的留言(增删查改)。 2....更完善的留言机制,更美观的界面。 4. 暂时还未想好的其他功能。
作者:Daniel 译者:前端小智 来源:js-craft JS 是一种灵活的语言,这种特性让我们经常觉得它是一门最简单的语言,也是最难掌握的语言。...const book = { author: '前端小智', title: '我不知道还可以用 JS 做的 6 件事' } with(book) { console.log(author...); // 前端小智 console.log(title); // 我不知道还可以用 JS 做的 6 件事 } 使用 with语句的 JavaScript 代码很难优化,因此它的运算速度比不使用...arguments JS 普通函数的默认值。 arguments.callee.caller告诉我们谁调用了该函数。 类似于只有一层 console.trace()。...因此,要返回实际的未定义值,请使用void运算符。它不是一个非常流行的运算符,并且很少使用。 原文:http://www.js-craft.io/blog/6...