PC 浏览器前端优化策略
PC 端优化的策略很多,如 YSlow(YSlow 是 Yahoo 发布的一款 Firefox 插件,现 Chrome 也可安装,可以对网站的页面性能进行分析,提出对该页面性能优化的建议)原则,或者 Chrome 自带的 Audits 等,总结起来主要包括网络加载类、页面渲染类、CSS 优化类、JavaScript 执行类、缓存类、图片类、架构协议类等几类,下面逐一介绍。
网络加载类
1.减少 HTTP 资源请求次数
在前端页面中,通常建议尽可能合并静态资源图片、JavaScript 或 CSS 代码,减少页面请求数和资源请求消耗,这样可以缩短页面首次访问的用户等待时间。通过构建工具合并雪碧图、CSS、JavaScript 文件等都是为了减少 HTTP 资源请求次数。另外也要尽量避免重复的资源,防止增加多余请求。
2.减小 HTTP 请求大小
除了减少 HTTP 资源请求次数,也要尽量减小每个 HTTP 请求的大小。如减少没必要的图片、JavaScript、CSS 及 HTML 代码,对文件进行压缩优化,或者使用 gzip 压缩传输内容等都可以用来减小文件大小,缩短网络传输等待时延。前面我们使用构建工具来压缩静态图片资源以及移除代码中的注释并压缩,目的都是为了减小 HTTP 请求的大小。
3.将 CSS 或 JavaScript 放到外部文件中,避免使用或标签直接引入
在 HTML 文件中引用外部资源可以有效利用浏览器的静态资源缓存,但有时候在移动端页面 CSS 或 JavaScript 比较简单的情况下为了减少请求,也会将 CSS 或 JavaScript 直接写到 HTML 里面,具体要根据 CSS 或 JavaScript 文件的大小和业务的场景来分析。如果 CSS 或 JavaScript 文件内容较多,业务逻辑较复杂,建议放到外部文件引入。
4.避免页面中空的 href 和 src
当标签的 href 属性为空,或、 、标签的 src 属性为空时,浏览器在渲染的过程中仍会将 href 属性或 src 属性中的空内容进行加载,直至加载失败,这样就阻塞了页面中其他资源的下载进程,而且最终加载到的内容是无效的,因此要尽量避免。
5.为 HTML 指定 Cache-Control 或 Expires
为 HTML 内容设置 Cache-Control 或 Expires 可以将 HTML 内容缓存起来,避免频繁向服务器端发送请求。前面讲到,在页面 Cache-Control 或 Expires 头部有效时,浏览器将直接从缓存中读取内容,不向服务器端发送请求。
6.合理设置 Etag 和 Last-Modified
合理设置 Etag 和 Last-Modified 使用浏览器缓存,对于未修改的文件,静态资源服务器会向浏览器端返回 304,让浏览器从缓存中读取文件,减少 Web 资源下载的带宽消耗并降低服务器负载。
7.减少页面重定向
页面每次重定向都会延长页面内容返回的等待延时,一次重定向大约需要 200 毫秒不等的时间开销(无缓存),为了保证用户尽快看到页面内容,要尽量避免页面重定向。
8.使用静态资源分域存放来增加下载并行数
浏览器在同一时刻向同一个域名请求文件的并行下载数是有限的,因此可以利用多个域名的主机来存放不同的静态资源,增大页面加载时资源的并行下载数,缩短页面资源加载的时间。通常根据多个域名来分别存储 JavaScript、CSS 和图片文件。
9.使用静态资源 CDN 来存储文件
如果条件允许,可以利用 CDN 网络加快同一个地理区域内重复静态资源文件的响应下载速度,缩短资源请求时间。
10.使用 CDN Combo 下载传输内容
CDN Combo 是在 CDN 服务器端将多个文件请求打包成一个文件的形式来返回的技术,这样可以实现 HTTP 连接传输的一次性复用,减少浏览器的 HTTP 请求数,加快资源下载速度。例如同一个域名 CDN 服务器上的 a.js,b.js,c.js 就可以按如下方式在一个请求中下载。
11.使用可缓存的 AJAX
对于返回内容相同的请求,没必要每次都直接从服务端拉取,合理使用 AJAX 缓存能加快 AJAX 响应速度并减轻服务器压力。
12.使用 GET 来完成 AJAX 请求
使用 XMLHttpRequest 时,浏览器中的 POST 方法会发起两次 TCP 数据包传输,首先发送文件头,然后发送 HTTP 正文数据。而使用 GET 时只发送头部,所以在拉取服务端数据时使用 GET 请求效率更高。
13.减少 Cookie 的大小并进行 Cookie 隔离
HTTP 请求通常默认带上浏览器端的 Cookie 一起发送给服务器,所以在非必要的情况下,要尽量减少 Cookie 来减小 HTTP 请求的大小。对于静态资源,尽量使用不同的域名来存放,因为 Cookie 默认是不能跨域的,这样就做到了不同域名下静态资源请求的 Cookie 隔离。
14.缩小 favicon.ico 并缓存
有利于 favicon.ico 的重复加载,因为一般一个 Web 应用的 favicon.ico 是很少改变的。
15.推荐使用异步 JavaScript 资源
异步的 JavaScript 资源不会阻塞文档解析,所以允许在浏览器中优先渲染页面,延后加载脚本执行。例如 JavaScript 的引用可以如下设置,也可以使用模块化加载机制来实现。
使用 async 时,加载和渲染后续文档元素的过程和 main.js 的加载与执行是并行的。使用 defer 时,加载后续文档元素的过程和 main.js 的加载是并行的,但是 main.js 的执行要在页面所有元素解析完成之后才开始执行。
16.消除阻塞渲染的 CSS 及 JavaScript
对于页面中加载时间过长的 CSS 或 JavaScript 文件,需要进行合理拆分或延后加载,保证关键路径的资源能快速加载完成。
17.避免使用 CSS import 引用加载 CSS
CSS 中的@import可以从另一个样式文件中引入样式,但应该避免这种用法,因为这样会增加 CSS 资源加载的关键路径长度,带有@import的 CSS 样式需要在 CSS 文件串行解析到@import时才会加载另外的 CSS 文件,大大延后 CSS 渲染完成的时间。
页面渲染类
1.把 CSS 资源引用放到 HTML 文件顶部
一般推荐将所有 CSS 资源尽早指定在 HTML 文档中,这样浏览器可以优先下载 CSS 并尽早完成页面渲染。
2.JavaScript 资源引用放到 HTML 文件底部
JavaScript 资源放到 HTML 文档底部可以防止 JavaScript 的加载和解析执行对页面渲染造成阻塞。由于 JavaScript 资源默认是解析阻塞的,除非被标记为异步或者通过其他的异步方式加载,否则会阻塞 HTML DOM 解析和 CSS 渲染的过程。
3.尽量预先设定图片等大小
在加载大量的图片元素时,尽量预先限定图片的尺寸大小,否则在图片加载过程中会更新图片的排版信息,产生大量的重排
4.不要在 HTML 中直接缩放图片
在 HTML 中直接缩放图片会导致页面内容的重排重绘,此时可能会使页面中的其他操作产生卡顿,因此要尽量减少在页面中直接进行图片缩放。
5.减少 DOM 元素数量和深度
HTML 中标签元素越多,标签的层级越深,浏览器解析 DOM 并绘制到浏览器中所花的时间就越长,所以应尽可能保持 DOM 元素简洁和层级较少。
6.尽量避免在选择器末尾添加通配符
CSS 解析匹配到 渲染树的过程是从右到左的逆向匹配,在选择器末尾添加通配符至少会增加一倍多计算量。
7.减少使用关系型样式表的写法
直接使用唯一的类名即可最大限度的提升渲染引擎绘制渲染树等效率
8.尽量减少使用 JS 动画
JS 直接操作 DOM 极容易引起页面的重排
9.CSS 动画使用 translate、scale 代替 top、height
尽量使用 CSS3 的 translate、scale 属性代替 top、left 和 height、width,避免大量的重排计算
10.尽量避免使用、
、
内容的渲染是将 table 的 DOM 渲染树全部生成完并一次性绘制到页面上的,所以在长表格渲染时很耗性能,应该尽量避免使用它,可以考虑使用列表元素代替。尽量使用异步的方式动态添加 iframe,因为 iframe 内资源的下载进程会阻塞父页面静态资源的下载与 CSS 及 HTML DOM 的解析。
11.避免运行耗时的 JavaScript
长时间运行的 JavaScript 会阻塞浏览器构建 DOM 树、DOM 渲染树、渲染页面。所以,任何与页面初次渲染无关的逻辑功能都应该延迟加载执行,这和 JavaScript 资源的异步加载思路是一致的。
12.避免使用 CSS 表达式或 CSS 滤镜
CSS 表达式或 CSS 滤镜的解析渲染速度是比较慢的,在有其他解决方案的情况下应该尽量避免使用。
你可能感兴趣的:(PC前端优化)
基于 Spring Cloud + Sentinel 的全面流量治理方案
power-辰南
java技术架构师成长专栏 spring cloud sentinel spring 流量治理
一、精准评估系统最大负载1.流量建模历史日志分析流量特征提取业务场景拆解流量模型构建容量预测模型实施方法:使用ELK分析6个月Nginx日志,提取分时/分业务QPS曲线构建典型场景模型:日常流量(正态分布)、促销流量(脉冲模型)、恶意攻击(毛刺识别)容量公式:单实例容量=(CPU核心数*1000ms)/平均RT(ms)2.数据模拟与环境搭建#使用tcpcopy复制生产流量./tcpcopy-x80
【app逆向】Frida-rpc 的常用python脚本
小宇python
app逆向 rpc javascript python
1.1Frida-rpc常用脚本在执行frida-rpc时,会涉及到先关参数类型的处理和转换,例如:python程序调用时,传入参数?frida的JavaScript脚本如何获取参数?JavaScript的参数如何转换到Java中所需的类型?1.1.1python传参在python中给frida的JavaScript脚本传入参数时,一般有如下几种情况:字符串/整型/浮点型等直接传递。importf
C++ 实现Arp断网
万能的小裴同学
c++ 网络
此程序由AI生成,测试过了,可以使用但是,貌似全部都会断网#include#include#include#include#include#include#include#include#pragmawarning(disable:4996)#pragmacomment(lib,"wpcap.lib")#pragmacomment(lib,"Ws2_32.lib")#pragmacomment(l
2025【修复版】红娘金媒10.3.1婚恋相亲系统源码+PC+微信小程序+抖音小程序+公众号+接入三端+安装教程
百创科技
源码与教程 源码下载 小程序 微信小程序
1.红娘服务红娘服务模块是该系统的一大特色。专业红娘会通过分析用户的个人资料和偏好,为用户提供精准的配对建议和个性化服务。用户可以预约红娘服务,通过红娘的介入,提升配对成功率。2.相亲活动相亲活动模块用于组织和管理线下或线上相亲活动。用户可以报名参加系统组织的各类相亲活动,通过集体活动认识更多异性。系统会发布活动信息,审核报名用户,并向报名成功的用户推送活动通知和后续反馈。3.交友匹配交友匹配模块
PCB加工常用高频板材(厂家)与型号介绍表
Turbulence_NB
材料工程 射频工程 pcb工艺 制造 5G
品牌分类品牌名称高频板系列材料构成进口品牌罗杰斯AD系列聚四氟乙烯-陶瓷-玻璃纤维布增强基板进口品牌罗杰斯RO4000系列碳氢树脂-陶瓷-玻璃纤维布复合材料基板进口品牌罗杰斯RO3000系列聚四氟乙烯-陶瓷复合基板,极低损耗,无玻纤材料进口品牌罗杰斯TMM系列碳氢树脂-陶瓷-随机玻纤增强复合材料进口品牌罗杰斯RT/Duroid5000系列聚四氟乙烯-随机玻纤增强复合基板,毫米波专用进口品牌AGC集
FPC布线优化:让你的设计效率提升10倍
为昕科技
为昕Mars PCB pcb工艺 硬件工程 软件工程
在FPC(柔性印制电路板)设计中,走线标准是需要重点关注的基础要素。走线标准01.线宽标准·最小线宽通常为3-4mil(0.076-0.1mm)·常用线宽为4-8mil(0.1-0.2mm)·大电流走线需要更宽,可达12-20mil(0.3-0.5mm)02.线间距标准·最小间距一般不小于4mil(0.1mm)·普通信号线间距建议6-8mil(0.15-0.2mm)·高速信号线需要更大间距,建议8
BurpSuite2025.1专业版
廾匸0705
网络安全 渗透工具 网络安全 渗透工具 Burpsuite
1工具介绍此版本引入了根据响应内容自动暂停BurpIntruder攻击、BurpCollaborator交互的CSV导出以及自动突出显示响应标头不匹配的功能Content-Length。我们还升级了Burp的浏览器并修复了几个错误。自动暂停入侵者攻击我们为BurpIntruder添加了新的自动暂停攻击设置。这使您能够在响应中出现或缺少指定表达式时自动暂停攻击。这可以减少运行大型攻击时的内存使用量,
1.力扣热题100
珍珠是蚌的眼泪
刷题 leetcode 力扣热题100
文章目录一、两数之和二、字母异位词分组三、最长连续序列一、两数之和publicint[]twoSum(int[]nums,inttarget){HashMapnumIndexMap=newHashMap();int[]result=newint[2];for(inti=0;i>groupAnagrams(String[]strs){Map>strListMap=newHashMapcurList=
自制一个SD/TF的读卡器
御坂0x1BF52号
笔记
(图片上的IC已经焊接,没有更新而已,实物图请点击下方链接查看)电路图、PCB、速度测试等请点击(使用立创EDA绘制)
python的scapy解读pcap包
AI拉呱
python高级编程 工具封装 python 开发语言
好的,下面是一个使用Python和scapy库来解读pcap文件的示例代码。scapy是一个非常强大的网络数据包处理库,可以用来捕获、解读和生成网络数据包。首先,确保你已经安装了scapy:pipinstallscapy然后,创建一个Python文件(例如read_pcap.py),在其中编写以下代码:fromscapy.allimportrdpcapdefread_pcap(file_path)
In function `main': testpcre.c:(.text+0x93): undefined reference to `pcre_compile' testpcre.c:(.tex
周杰伦今天喝奶茶了吗
Error Unix
从昨晚困扰我到现在的问题,终于解决了~~~先贴源程序testpcre.c#include#include#includeintmain(intargc,char**argv){if(argc!=3){printf("Usage:%spatterntext\n",argv[0]);return1;}constchar*pPattern=argv[1];constchar*pText=argv[2];
Android N(全志平台A40i)添加adb登录密码
阿姨打太极
android adb
需求:在adbshell登录终端时加入鉴权密码,鉴权开关可配置且密码可修改问题分析:见下文AndroidN:adb及adbd源码分析解决方案:思路:pc上终端输入adbshell命令后,实际上是adbd守护进程fork出的子进程来执行/bin/sh,adbd监听usb/tcp输入执行命令,并通过socket将结果回显到pc。那么我们解决该问题的方法就是在执行/bin/sh之前加入我们的校验脚本。1
sqlserver存储过程案例教程
超级无敌暴龙战士塔塔开
sqlserver 数据库 sql
定义用sql写业务逻辑,系统变了,只要数据库没变,功能还是可以生效常用存储过程(系统自带)--查看数据库execsp_databases;--查看表execsp_tables;--查看列execsp_columnsstudentInfo;execsp_helpIndexstudent;--查看索引execsp_helpConstraintstudent;--约束execsp_stored_proc
蓝桥杯篇---串行EEPROM AT24C02
Ronin-Lotus
蓝桥杯篇 嵌入式硬件篇 蓝桥杯 职场和发展 c 嵌入式硬件 AT24C02
文章目录前言1.写字节时序(ByteWrite)特点时序步骤1.起始条件(StartCondition)2.发送设备地址(DeviceAddress)3.发送内存地址(WordAddress)4.发送数据(Data)5.停止条件(StopCondition)时序图代码示例2.写页面时序(PageWrite)特点时序步骤1.起始条件(StartCondition)2.发送设备地址(DeviceAdd
ABB机器人的二次开发
Mountain and sea
机器人 算法 c语言 学习 自动化
ABB机器人的二次开发可以通过多种方式实现,主要涉及编程接口、通信协议和开发工具。以下是详细的步骤和方法:1.基础准备确认RobotWare选项:确保机器人控制器安装了必要的选项,如:PCInterface(用于PCSDK通信)RobotWebServices(RESTAPI支持)Fieldbus选项(如Profinet、EtherNet/IP)权限设置:在示教器上将用户权限设置为“专家模式”或更
操作系统-实例详解fork()的工作原理(超详细版)
Refulic.
linux 系统架构
讲解这一主题的帖子很多,但是对于初学者来说依然很难理解。所以本文会先贴出完整的实例代码,然后逐句讲解。重点在于理解函数的工作逻辑。读者可以直接从代码段后开始阅读。#include#include#include#includeintmain(){pid_tpid=fork();//创建一个子进程if(pid0)块。子进程复制了父进程的PC,所以从fork()的返回点开始执行。操作系统在子进程中将f
点云基础介绍(一)——三维点云
夜幕龙
3D视觉 计算机视觉
目录1.绪论1.1什么是三维点云1.2主要特点:1.3主要获取方式1.4应用场景:1.5处理方法(持续更新ing):1.6主要挑战:1.7总结2.开源工具及库2.1介绍分析2.2PCL和Open3D区别3.开源资料3.1PCL3.2Open3D1.绪论1.1什么是三维点云三维点云(3DPointCloud)是一种用于表示三维空间中对象或场景的数据结构。在最基础的形式中,它是一个包含多个三维坐标点(
JAVA调用Deepseek的api,完成基本对话
菜菜-plus
java 开发语言 Deepseek
获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Java的HTTP客户端库(如ApacheHttpClient或OkHttp)来发送HTTP请求。如果使用Maven,可以在pom.xml中添加依赖:、org.apache.httpcomponentshttpclient4.5.13com.squareup.okhttp3okhttp4.9.3创建H
树莓派通过手机热点,无线连接PC端电脑,进行远程操作
Epiphany_ZZW
树莓派 智能手机
树莓派通过手机热点实现无线连接具有以下几点优势:1.该方式能够联网,方便在项目开发时下载一些数据包。2.该方式能够通过手机端查看树莓派IP地址(有些情况树莓派ip地址会发生改变)借鉴链接如下:树莓派的使用网线及无线连接方法及手机连接树莓派_opencv镜像具体操作方式如下:打开终端:pi@raspberrypi:~$sudonano/etc/wpa_supplicant/wpa_supplican
聚焦大模型!隐语技术团队研究成果被 ICASSP 与 ICLR 两大顶会收录
隐私开源模型
“隐语”是开源的可信隐私计算框架,内置MPC、TEE、同态等多种密态计算虚拟设备供灵活选择,提供丰富的联邦学习算法和差分隐私机制。开源项目:https://github.com/secretflowhttps://gitee.com/secretflow导语:2023年,「大模型」走到了聚光灯下,技术圈的“头部玩家”们纷纷入场,其潜能和价值正在被不断挖掘与释放。与此同时,大模型相关的隐私安全问题也
JavaScript 简介
强强学习
javascript 开发语言 ecmascript
JavaScript是互联网上最流行的脚本语言,这门语言可用于HTML和web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。JavaScript是脚本语言JavaScript是一种轻量级的编程语言。JavaScript是可插入HTML页面的编程代码。JavaScript插入HTML页面后,可由所有的现代浏览器执行。JavaScript很容易学习。
react 常用
知其黑、受其白
React Hooks+Laravel 制作博客 react.js javascript 前端
阅读目录安装脚手架工具create-react-app查看react-router-dom所有版本查看react所有版本指定版本安装react-router-dom安装脚手架工具create-react-appnpminstall-gcreate-react-appcreate-react-app是React官方出的脚手架工具,其实有很多第三方的脚手架工具,也有很多优秀的。但是作为初学者为了减少踩
使用python imapclient访问163邮箱
锅炉房刘大爷
python2.7 imapclient
#coding=utf8"""python2.7"""importreimportosimportsysimporttimeimportjsonimportemailimportloggingfromimapclientimportIMAPClientlogging.basicConfig(level=logging.DEBUG,format='[%(asctime)s][%(levelname)
【python】用IMAP获取电子邮件
胡 亥
python入门与自动化操作 python ssl https
大家好,我是胡亥大魔王。今天介绍python中用IMAP获取电子邮件前面讲过了SMTP是用来发送邮件的协议,于此相对应的取回发送到你电子邮件地址的电子邮件也有一个协议,即因特网消息访问协议(IMAP)。python自带了一个imaplib模块,但实际上第三方的imapclient模块更好用,本文主要介绍如何使用IMAPClient,完整的文档在https://imapclient.readthed
前端优化可以从哪些方面下手及优化方案
光影少年
前端 性能优化
前端优化是提升网页性能、提升用户体验和降低服务器负担的重要手段。可以从多个角度入手,以下是一些常见的优化方向和方案:1.性能优化减少请求数量:尽量减少页面加载时发起的HTTP请求,例如使用合并文件(CSS和JS)、减少图片的请求。使用懒加载(LazyLoading):对于图片、视频或组件,可以采用懒加载的方式,只有当用户需要时才加载。代码拆分(CodeSplitting):使用Webpack或类似
Windows逆向工程入门之汇编指令格式与操作数类型
0xCC说逆向
汇编 windows arm开发 WIN32 c语言 逆向 安全
公开视频->链接点击跳转公开课程博客首页->链接点击跳转博客主页目录一、汇编指令格式基础二、操作数类型详解1.立即数(Immediate)2.寄存器操作数(Register)3.内存操作数(Memory)4.端口操作数(Port)三、汇编指令格式分类1.零操作数指令2.单操作数指令3.双操作数指令4.三操作数指令四、逆向工程中的指令解析技巧五、拓展知识点一、汇编指令格式基础汇编指令由操作码(Opc
RPC框架Dubbo深入分析
radcb55226
程序员 rpc dubbo 网络协议
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!依赖于Zookeeper的稳定性Redis支持基于客户端双写的集群方式,性能高要求服务器时间同步,用于检查心跳过期脏数据Multicast去中心化,不需要安装注册中心依赖于网络拓普和路由,跨机房有风险SimpleDogfooding,注册中心本身也是一个标准的RPC服务没有集群支持,可能单点故障cl
Windows奇技淫巧之网络命令行
沉迷单车的追风少年
服务端编程 计算机网络 经验问题汇总 windows 网络
写在前面:Linux老鸟会深度沉迷命令行,各种奇技淫巧心中涨,但是windows上的命令行相当好用,各种骚操作也是眼花缭乱。其中网络操作经常使用,本文做一个简单的总结。目录1、ipconfig:显示当前TCP/IP配置的设置值2、ping:测试目的站是否可达及相关状态3、arp:地址解析协议4、traceroute:路由跟踪5、route:操作路由表6、netstat:显示协议统计信息7、nbts
【深度学习】计算机视觉(CV)-图像分类-ResNet(Residual Network,残差网络)
IT古董
深度学习 人工智能 深度学习 计算机视觉 分类
ResNet(ResidualNetwork,残差网络)是一种深度卷积神经网络(CNN)架构,由何恺明(KaimingHe)等人在2015年提出,最初用于ImageNet竞赛,并在分类任务上取得了冠军。ResNet的核心思想是残差学习(ResidualLearning),它通过跳跃连接(SkipConnections)解决了深度神经网络训练中的梯度消失和梯度爆炸问题,使得非常深的网络(如50层、1
app,waf笔记
qq_45981247
笔记
API攻防知识点:1、HTTP接口类-测评2、RPC类接口-测评3、WebService类-测评内容点:SOAP(SimpleObjectAccessProtocol)简单对象访问协议是交换数据的一种协议规范,是一种轻量级的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。SOAP部署WebService的专有协议。SOAP使用HTTP来发送
ios内付费
374016526
ios 内付费
近年来写了很多IOS的程序,内付费也用到不少,使用IOS的内付费实现起来比较麻烦,这里我写了一个简单的内付费包,希望对大家有帮助。
具体使用如下:
这里的sender其实就是调用者,这里主要是为了回调使用。
[KuroStoreApi kuroStoreProductId:@"产品ID" storeSender:self storeFinishCallBa
20 款优秀的 Linux 终端仿真器
brotherlamp
linux linux视频 linux资料 linux自学 linux教程
终端仿真器是一款用其它显示架构重现可视终端的计算机程序。换句话说就是终端仿真器能使哑终端看似像一台连接上了服务器的客户机。终端仿真器允许最终用户用文本用户界面和命令行来访问控制台和应用程序。(LCTT 译注:终端仿真器原意指对大型机-哑终端方式的模拟,不过在当今的 Linux 环境中,常指通过远程或本地方式连接的伪终端,俗称“终端”。)
你能从开源世界中找到大量的终端仿真器,它们
Solr Deep Paging(solr 深分页)
eksliang
solr深分页 solr分页性能问题
转载请出自出处:http://eksliang.iteye.com/blog/2148370
作者:eksliang(ickes) blg:http://eksliang.iteye.com/ 概述
长期以来,我们一直有一个深分页问题。如果直接跳到很靠后的页数,查询速度会比较慢。这是因为Solr的需要为查询从开始遍历所有数据。直到Solr的4.7这个问题一直没有一个很好的解决方案。直到solr
数据库面试题
18289753290
面试题 数据库
1.union ,union all
网络搜索出的最佳答案:
union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。
Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
Union All:对两个结果集进行并集操作,包括重复行,不进行排序;
2.索引有哪些分类?作用是
Android TV屏幕适配
酷的飞上天空
android
先说下现在市面上TV分辨率的大概情况
两种分辨率为主
1.720标清,分辨率为1280x720.
屏幕尺寸以32寸为主,部分电视为42寸
2.1080p全高清,分辨率为1920x1080
屏幕尺寸以42寸为主,此分辨率电视屏幕从32寸到50寸都有
适配遇到问题,已1080p尺寸为例:
分辨率固定不变,屏幕尺寸变化较大。
如:效果图尺寸为1920x1080,如果使用d
Timer定时器与ActionListener联合应用
永夜-极光
java
功能:在控制台每秒输出一次
代码:
package Main;
import javax.swing.Timer;
import java.awt.event.*;
public class T {
private static int count = 0;
public static void main(String[] args){
Ubuntu14.04系统Tab键不能自动补全问题解决
随便小屋
Ubuntu 14.04
Unbuntu 14.4安装之后就在终端中使用Tab键不能自动补全,解决办法如下:
1、利用vi编辑器打开/etc/bash.bashrc文件(需要root权限)
sudo vi /etc/bash.bashrc
接下来会提示输入密码
2、找到文件中的下列代码
#enable bash completion in interactive shells
#if
学会人际关系三招 轻松走职场
aijuans
职场
要想成功,仅有专业能力是不够的,处理好与老板、同事及下属的人际关系也是门大学问。如何才能在职场如鱼得水、游刃有余呢?在此,教您简单实用的三个窍门。
第一,多汇报
最近,管理学又提出了一个新名词“追随力”。它告诉我们,做下属最关键的就是要多请示汇报,让上司随时了解你的工作进度,有了新想法也要及时建议。不知不觉,你就有了“追随力”,上司会越来越了解和信任你。
第二,勤沟通
团队的力
《O2O:移动互联网时代的商业革命》读书笔记
aoyouzi
读书笔记
移动互联网的未来:碎片化内容+碎片化渠道=各式精准、互动的新型社会化营销。
O2O:Online to OffLine 线上线下活动
O2O就是在移动互联网时代,生活消费领域通过线上和线下互动的一种新型商业模式。
手机二维码本质:O2O商务行为从线下现实世界到线上虚拟世界的入口。
线上虚拟世界创造的本意是打破信息鸿沟,让不同地域、不同需求的人
js实现图片随鼠标滚动的效果
百合不是茶
JavaScript 滚动属性的获取 图片滚动 属性获取 页面加载
1,获取样式属性值
top 与顶部的距离
left 与左边的距离
right 与右边的距离
bottom 与下边的距离
zIndex 层叠层次
例子:获取左边的宽度,当css写在body标签中时
<div id="adver" style="position:absolute;top:50px;left:1000p
ajax同步异步参数async
bijian1013
jquery Ajax async
开发项目开发过程中,需要将ajax的返回值赋到全局变量中,然后在该页面其他地方引用,因为ajax异步的原因一直无法成功,需将async:false,使其变成同步的。
格式:
$.ajax({ type: 'POST', ur
Webx3框架(1)
Bill_chen
eclipse spring maven 框架 ibatis
Webx是淘宝开发的一套Web开发框架,Webx3是其第三个升级版本;采用Eclipse的开发环境,现在支持java开发;
采用turbine原型的MVC框架,扩展了Spring容器,利用Maven进行项目的构建管理,灵活的ibatis持久层支持,总的来说,还是一套很不错的Web框架。
Webx3遵循turbine风格,velocity的模板被分为layout/screen/control三部
【MongoDB学习笔记五】MongoDB概述
bit1129
mongodb
MongoDB是面向文档的NoSQL数据库,尽量业界还对MongoDB存在一些质疑的声音,比如性能尤其是查询性能、数据一致性的支持没有想象的那么好,但是MongoDB用户群确实已经够多。MongoDB的亮点不在于它的性能,而是它处理非结构化数据的能力以及内置对分布式的支持(复制、分片达到的高可用、高可伸缩),同时它提供的近似于SQL的查询能力,也是在做NoSQL技术选型时,考虑的一个重要因素。Mo
spring/hibernate/struts2常见异常总结
白糖_
Hibernate
Spring
①ClassNotFoundException: org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldException
缺少aspectjweaver.jar,该jar包常用于spring aop中
②java.lang.ClassNotFoundException: org.sprin
jquery easyui表单重置(reset)扩展思路
bozch
form jquery easyui reset
在jquery easyui表单中 尚未提供表单重置的功能,这就需要自己对其进行扩展。
扩展的时候要考虑的控件有:
combo,combobox,combogrid,combotree,datebox,datetimebox
需要对其添加reset方法,reset方法就是把初始化的值赋值给当前的组件,这就需要在组件的初始化时将值保存下来。
在所有的reset方法添加完毕之后,就需要对fo
编程之美-烙饼排序
bylijinnan
编程之美
package beautyOfCoding;
import java.util.Arrays;
/*
*《编程之美》的思路是:搜索+剪枝。有点像是写下棋程序:当前情况下,把所有可能的下一步都做一遍;在这每一遍操作里面,计算出如果按这一步走的话,能不能赢(得出最优结果)。
*《编程之美》上代码有很多错误,且每个变量的含义令人费解。因此我按我的理解写了以下代码:
*/
Struts1.X 源码分析之ActionForm赋值原理
chenbowen00
struts
struts1在处理请求参数之前,首先会根据配置文件action节点的name属性创建对应的ActionForm。如果配置了name属性,却找不到对应的ActionForm类也不会报错,只是不会处理本次请求的请求参数。
如果找到了对应的ActionForm类,则先判断是否已经存在ActionForm的实例,如果不存在则创建实例,并将其存放在对应的作用域中。作用域由配置文件action节点的s
[空天防御与经济]在获得充足的外部资源之前,太空投资需有限度
comsci
资源
这里有一个常识性的问题:
地球的资源,人类的资金是有限的,而太空是无限的.....
就算全人类联合起来,要在太空中修建大型空间站,也不一定能够成功,因为资源和资金,技术有客观的限制....
&
ORACLE临时表—ON COMMIT PRESERVE ROWS
daizj
oracle 临时表
ORACLE临时表 转
临时表:像普通表一样,有结构,但是对数据的管理上不一样,临时表存储事务或会话的中间结果集,临时表中保存的数据只对当前
会话可见,所有会话都看不到其他会话的数据,即使其他会话提交了,也看不到。临时表不存在并发行为,因为他们对于当前会话都是独立的。
创建临时表时,ORACLE只创建了表的结构(在数据字典中定义),并没有初始化内存空间,当某一会话使用临时表时,ORALCE会
基于Nginx XSendfile+SpringMVC进行文件下载
denger
应用服务器 Web nginx 网络应用 lighttpd
在平常我们实现文件下载通常是通过普通 read-write方式,如下代码所示。
@RequestMapping("/courseware/{id}")
public void download(@PathVariable("id") String courseID, HttpServletResp
scanf接受char类型的字符
dcj3sjt126com
c
/*
2013年3月11日22:35:54
目的:学习char只接受一个字符
*/
# include <stdio.h>
int main(void)
{
int i;
char ch;
scanf("%d", &i);
printf("i = %d\n", i);
scanf("%
学编程的价值
dcj3sjt126com
编程
发一个人会编程, 想想以后可以教儿女, 是多么美好的事啊, 不管儿女将来从事什么样的职业, 教一教, 对他思维的开拓大有帮助
像这位朋友学习:
http://blog.sina.com.cn/s/articlelist_2584320772_0_1.html
VirtualGS教程 (By @林泰前): 几十年的老程序员,资深的
二维数组(矩阵)对角线输出
飞天奔月
二维数组
今天在BBS里面看到这样的面试题目,
1,二维数组(N*N),沿对角线方向,从右上角打印到左下角如N=4: 4*4二维数组
{ 1 2 3 4 }
{ 5 6 7 8 }
{ 9 10 11 12 }
{13 14 15 16 }
打印顺序
4
3 8
2 7 12
1 6 11 16
5 10 15
9 14
13
要
Ehcache(08)——可阻塞的Cache——BlockingCache
234390216
并发 ehcache BlockingCache 阻塞
可阻塞的Cache—BlockingCache
在上一节我们提到了显示使用Ehcache锁的问题,其实我们还可以隐式的来使用Ehcache的锁,那就是通过BlockingCache。BlockingCache是Ehcache的一个封装类,可以让我们对Ehcache进行并发操作。其内部的锁机制是使用的net.
mysqldiff对数据库间进行差异比较
jackyrong
mysqld
mysqldiff该工具是官方mysql-utilities工具集的一个脚本,可以用来对比不同数据库之间的表结构,或者同个数据库间的表结构
如果在windows下,直接下载mysql-utilities安装就可以了,然后运行后,会跑到命令行下:
1) 基本用法
mysqldiff --server1=admin:12345
spring data jpa 方法中可用的关键字
lawrence.li
java spring
spring data jpa 支持以方法名进行查询/删除/统计。
查询的关键字为find
删除的关键字为delete/remove (>=1.7.x)
统计的关键字为count (>=1.7.x)
修改需要使用@Modifying注解
@Modifying
@Query("update User u set u.firstna
Spring的ModelAndView类
nicegege
spring
项目中controller的方法跳转的到ModelAndView类,一直很好奇spring怎么实现的?
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* yo
搭建 CentOS 6 服务器(13) - rsync、Amanda
rensanning
centos
(一)rsync
Server端
# yum install rsync
# vi /etc/xinetd.d/rsync
service rsync
{
disable = no
flags = IPv6
socket_type = stream
wait
Learn Nodejs 02
toknowme
nodejs
(1)npm是什么
npm is the package manager for node
官方网站:https://www.npmjs.com/
npm上有很多优秀的nodejs包,来解决常见的一些问题,比如用node-mysql,就可以方便通过nodejs链接到mysql,进行数据库的操作
在开发过程往往会需要用到其他的包,使用npm就可以下载这些包来供程序调用
&nb
Spring MVC 拦截器
xp9802
spring mvc
Controller层的拦截器继承于HandlerInterceptorAdapter
HandlerInterceptorAdapter.java 1 public abstract class HandlerInterceptorAdapter implements HandlerIntercep