Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
著移動端的發(fā)展流量入口也越來越偏向移動,如果你的網(wǎng)站打開速度慢會增加用戶等待時間大大違背了用戶體驗的原則,而頁面加載速度逐漸被各大搜索引擎納入搜索排名的因素之一,百度在去年的閃電算法中也明確表示移動端首屏的加載速度將會直接影響搜索排名。
加載速度可以理解,在特定的頁面上顯示出所有內(nèi)容的時間,從瀏覽器的角度是從第一個字節(jié)接收信息所需要的時間。研究表明,大部分搜索引擎會專門測量第一個字節(jié)的加載時間,緩慢的加載速度影響搜索引擎分配抓取的權(quán)限,從而導(dǎo)致索引頁面過少【比如說:現(xiàn)實生活中我們要拿一個水杯,如果的此時你的水杯放在在桌上你順手可以拿到,如果你放在抽屜里,此時需要你打開抽屜才能拿到,所以放在桌上的水杯比較方便減少了你拿的時間,提高了的你的用戶體驗】更多的干貨也可以在手機微信框搜索:樂建網(wǎng)創(chuàng)軍團,去關(guān)注樂建
那些因素會影響到網(wǎng)站加載速度:高清圖片,彈窗類廣告,虛擬主機與服務(wù)器相關(guān)基礎(chǔ)設(shè)置,視頻,未優(yōu)化的程序插件與編碼,主題模板的相關(guān)設(shè)計,我們知道影響網(wǎng)站加載速度后怎么解決這些問題呢?
1、開啟MIP
百度對于MIP的描述:使用MIP無需等待加載,頁面內(nèi)容將以更友好的方式瞬時到達用戶,如果你還未建站建議新站初期就開始采用MIP,否則后期改版相對麻煩,mip的改造方法。
2、CDN
cdn并沒有從根本上解決頁面加載速度的問題,而是通過云加速,將頁面緩存到最快的訪問節(jié)點,從而提高了頁面加載速度,這對于技術(shù)薄弱的站長是個福利,同時國內(nèi)的cdn服務(wù)商很多,如果你是依托百度搜索的,還是建議大家使用百度云加速,畢竟百度對自家的產(chǎn)品有一定的扶持。
3、網(wǎng)站的空間線路
沒這個前提,就算你網(wǎng)站做的再好,內(nèi)容再少,服務(wù)器多強,打開需要半天沒的說,還有可能經(jīng)常出現(xiàn)打不開的現(xiàn)象,所以,要像網(wǎng)站打開的快,我們就得把這個地基打好,下面樓需要建多少層才好說話。通常我們常用的有電信,網(wǎng)通,或雙線路,三線路。無論你選了那種,都要好要快就行了。
4、網(wǎng)站需要全站靜態(tài)化生成
就是頁面的后綴是.html或.php等其它的,為什么這樣說呢?你想一下,一般動態(tài)的網(wǎng)站,打開頁面是,首先他就必須去讀取數(shù)據(jù)庫的資料,然后在顯示到頁面上,走了個彎路,并還有數(shù)據(jù)庫訪問的速度和數(shù)據(jù)庫數(shù)據(jù)多少,數(shù)據(jù)庫的大小所決定。你想不慢都難,靜態(tài)頁面就不同了,它不需要訪問數(shù)據(jù)庫,因為它在生成出來時就已通過讀取數(shù)據(jù)庫的資料,資料生成出一個頁面來了,走的是直路,想不快都難;
5、壓縮或精簡Javascript代碼和css代碼
無論什么類型的網(wǎng)站,用戶第一次點擊網(wǎng)站的時候,都會加載網(wǎng)站的Javascript和css代碼,假設(shè)這些代碼冗多,勢必會降低網(wǎng)站打開速度。
如果有這樣的問題,就要對代碼進行壓縮或精簡。壓縮方面,有大量的第三方工具如站長之家的CSS\JS壓縮工具可供大家直接免費試用,經(jīng)過壓縮的代碼,普遍能減小40%到65%。精簡方面,能用一個樣式控制就不用兩個,思路是既能滿足網(wǎng)站的頁面布局,又是最小的代碼量。
6、減少HTTP請求數(shù)
用戶在打開一個網(wǎng)頁的時候,后臺程序響應(yīng)用戶所需的時間并不多,用戶等待的時間主要花費在下載網(wǎng)頁元素上了,即HTML、CSS、JavaScript、Flash、圖片等,統(tǒng)計顯示,每增加一個元素,網(wǎng)頁載入的時間就增加25-40毫秒(取決于用戶的帶寬情況)。所以,想要提高網(wǎng)頁打開速度,就要減少HTTP請求數(shù),方法有3種:
1)、減少不必要的HTTP請求
例如用CSS圓角代替圓角圖片,減少圖片的使用。
2)、合并文件
對于文本文件,可以直接合并內(nèi)容。例如將多個JS(JavaScript的簡稱)文件合并成一個,將多個CSS文件合并成一個。
3)、優(yōu)化緩存
對于沒有變化的網(wǎng)頁元素(如頁頭、頁尾等),用戶再次訪問的時候沒有必要重新下載,直接從瀏覽器緩存里讀取就可以了。
7、服務(wù)器端的緩存設(shè)置
假設(shè)用戶第一次訪問了你的網(wǎng)站,那么用戶下一次再次訪問你的站點,速度就會更快。這是什么原因呢?原因在于瀏覽器緩存。
大多數(shù)服務(wù)器,或空間已經(jīng)默認(rèn)設(shè)置了緩存功能,站長或者seoer要做的就是在后臺設(shè)定相應(yīng)文件類型以及過期時間。在此,建議為:如果是windows主機,就將圖片,css和Javascript文件的緩存時間設(shè)置為30天;如果是ApacheWeb服務(wù)器,則使用mod_cache模塊開啟緩存功能。
8、優(yōu)化css中的引用圖片
假設(shè)一個頁面需要大量的周邊圖片,如下圖標(biāo)等,如果這些圖片都是單獨調(diào)用,那么請求數(shù)就會加大,這就說明:cssimages過多,請求數(shù)就會增大,網(wǎng)站打開速度就會變慢。
如果我們將頁面所需要使用的圖片合并在一張圖上,那么這些圖片請求數(shù)就會變?yōu)?,頁面速度相對就會加快。如何將需要的圖片放在一張圖上并在相應(yīng)的位置調(diào)用呢?方法在于坐標(biāo)定位。即:通過css坐標(biāo)取得圖片路徑,標(biāo)簽中引用相應(yīng)坐標(biāo)。
如果你對前端了解,那么這些都不是大問題,如果你不懂css,那么CSS圖片合并生成器類工具(百度即可)能直接提供相應(yīng)內(nèi)容:合并css圖片,同時生成相應(yīng)代碼。
9、圖片壓縮處理
有數(shù)據(jù)顯示,圖片加載時間是造成網(wǎng)站速度的最大因素,將圖片加載速度問題解決,頁面速度問題就解決了一大半。假設(shè)網(wǎng)站有大量jpg等格式的圖片,需要在不影響視覺的前提下,盡量對其壓縮,以減少圖片本身的大小。與壓縮Javascript文件類似,有大量的在線工具提供相應(yīng)壓縮服務(wù),有大量的圖像編輯軟件如美圖秀秀等,都有壓縮功能。
10、服務(wù)器端開啟gzip壓縮功能
網(wǎng)頁中的每個元素越小,下載所需的時間就越少,這個很好理解。gzip壓縮是效率較高的一種數(shù)據(jù)壓縮格式。如果開啟gzip壓縮,壓縮率一般能達到75%左右,效果非常明顯。大部分服務(wù)器如虛擬主機,VPS等都已經(jīng)默認(rèn)開啟了這一項功能,如果沒有開啟,你對相應(yīng)設(shè)置又不會,建議直接聯(lián)系空間商,讓他們解決。
11、HTTPS優(yōu)化
百度倡導(dǎo)任何站點開啟HTTPS模式,用來加強網(wǎng)站信息傳輸?shù)陌踩瑫r也會給予一定的排名參考,但我們都制定https需要調(diào)用服務(wù)器資源并占用一定時間,目前最好的辦法就是開啟具有https加速的CDN。
12、減少重定向請求
日常工作中,我們經(jīng)常會對一些需要變更的頁面進行301重定向,盡量避免網(wǎng)站出現(xiàn)大量的重定向網(wǎng)址,特別是已經(jīng)參與排名的頁面,它耗費了服務(wù)器的響應(yīng)時間。
總結(jié):以上就是樂建給大家分享的干貨,提高網(wǎng)站加載速度的細節(jié)還有很多,我們應(yīng)該善于利用工具發(fā)現(xiàn)問題,從而節(jié)省大量的排查時間。
1、關(guān)注我的頭條號
2、私信回復(fù)關(guān)鍵詞:資料
希望大家將此進行分享,轉(zhuǎn)載,讓跟多需要的朋友看到,這樣不僅自己得到了幫助,也能幫助到其他人!
我是樂建,歡迎大家關(guān)注《樂建網(wǎng)創(chuàng)軍團》,創(chuàng)業(yè)知識分享,只講人人都可上手的創(chuàng)業(yè)賺錢方法,分享最接地氣的SEO賺錢實戰(zhàn)干貨。專注自媒體創(chuàng)業(yè)、營銷、變現(xiàn)等各類干貨分享。關(guān)注我,學(xué)習(xí)更多。
?
可能知道幾種使用純CSS創(chuàng)建圖表的方法。但是我還沒有看到“面積圖”(想象一下填充有底部區(qū)域的折線圖)的許多示例,尤其是HTML中的任何示例。和CSS。在本文中,我們將使用語義和可訪問的HTML基礎(chǔ)來做到這一點。
為簡化起見,我們將使用<ul>標(biāo)簽作為<li>各個數(shù)據(jù)項的包裝和元素。您可以根據(jù)需要在項目中使用任何其他HTML標(biāo)記。
<ul class="area-chart">
<li> 40% </li>
<li> 80% </li>
<li> 60% </li>
<li> 100% </li>
<li> 30% </li>
</ul>
CSS無法檢索內(nèi)部HTML文本,這就是為什么我們將使用CSS自定義屬性將數(shù)據(jù)傳遞到CSS的原因。每個數(shù)據(jù)項將具有--start和的--end自定義屬性。
<ul class="area-chart">
<li style="--start: 0.1; --end: 0.4;"> 40% </li>
<li style="--start: 0.4; --end: 0.8;"> 80% </li>
<li style="--start: 0.8; --end: 0.6;"> 60% </li>
<li style="--start: 0.6; --end: 1.0;"> 100% </li>
<li style="--start: 1.0; --end: 0.3;"> 30% </li>
</ul>
在進入樣式之前,我們應(yīng)考慮以下幾個設(shè)計原則:
讓我們先從一般布局樣式開始。圖表包裝器元素是一個flex容器,可連續(xù)顯示項目,并拉伸每個子元素,以便填充整個區(qū)域。
.area-chart {
/* Reset */
margin: 0;
padding: 0;
border: 0;
/* Dimensions */
width: 100%;
max-width: var(--chart-width, 100%);
height: var(--chart-height, 300px);
/* Layout */
display: flex;
justify-content: stretch;
align-items: stretch;
flex-direction: row;
}
如果面積圖包裝器是列表,則應(yīng)刪除列表樣式,以使我們更具樣式靈活性。
ul.area-chart,
ol.area-chart {
list-style: none;
}
此代碼為整個圖表中的所有列設(shè)置樣式。使用條形圖很簡單:我們?yōu)槊恳涣惺褂?span style="background-color: #FFEFF0; --tt-darkmode-bgcolor: #C7BABB;">background-color和height。隨著地區(qū)焦炭TS,我們將使用clip-path屬性設(shè)置應(yīng)顯示的區(qū)域。
首先,我們設(shè)置每一列:
.area-chart > * {
/* Even size items */
flex-grow: 1;
flex-shrink: 1;
flex-basis: 0;
/* Color */
background: var(--color, rgba(240, 50, 50, .75));
}
要創(chuàng)建一個覆蓋整個區(qū)域的矩形,我們將到達clip-path屬性,并使用polygon()包含該區(qū)域坐標(biāo)的函數(shù)。目前,這基本上什么也不做,因為多邊形覆蓋了所有內(nèi)容:
.area-chart > * {
clip-path: polygon(
0% 0%, /* top left */
100% 0%, /* top right */
100% 100%, /* bottom right */
0% 100% /* bottom left */
);
}
現(xiàn)在最好的部分!
為了僅顯示該列的一部分,我們將其裁剪以創(chuàng)建類似于面積圖的效果。為了只顯示我們想要的區(qū)域,我們在多邊形內(nèi)使用--start和--end自定義屬性clip-path:
.area-chart > * {
clip-path: polygon(
0% calc(100% * (1 - var(--start))),
100% calc(100% * (1 - var(--end))),
100% 100%,
0% 100%
);
}
認(rèn)真地講,CSS的這一部分完成了所有工作。這是我們得到的:
現(xiàn)在我們已經(jīng)了解了基礎(chǔ)知識,讓我們創(chuàng)建一個包含多個數(shù)據(jù)集的面積圖。面積圖通常可以測量一組以上的數(shù)據(jù),其效果是對數(shù)據(jù)進行分層比較。
這種圖表需要幾個子元素,因此我們將用代替我們的<ul>方法<table>。
<table class="area-chart">
<tbody>
<tr>
<td> 40% </td>
<td> 80% </td>
</tr>
<tr>
<td> 60% </td>
<td> 100% </td>
</tr>
</tbody>
</table>
表是可訪問的,并且對搜索引擎友好。而且,如果由于某種原因未加載樣式表,則所有數(shù)據(jù)仍在標(biāo)記中可見。
同樣,我們將使用--start和--end自定義屬性,其數(shù)字介于0和1之間。
<table class="area-chart">
<tbody>
<tr>
<td style="--start: 0; --end: 0.4;"> 40% </td>
<td style="--start: 0; --end: 0.8;"> 80% </td>
</tr>
<tr>
<td style="--start: 0.4; --end: 0.6;"> 60% </td>
<td style="--start: 0.8; --end: 1.0;"> 100% </td>
</tr>
</tbody>
</table>
因此,首先,我們將為包裝元素(即表格)的總體布局設(shè)置樣式,并為其提供了一個.area-chart類:
.area-chart {
/* Reset */
margin: 0;
padding: 0;
border: 0;
/* Dimensions */
width: 100%;
max-width: var(--chart-width, 600px);
height: var(--chart-height, 300px);
}
接下來,我們將使<tbody>元素成為flex容器,<tr>連續(xù)顯示項目并按大小均勻顯示:
.area-chart tbody {
width: 100%;
height: var(--chart-height, 300px);
/* Layout */
display: flex;
justify-content: stretch;
align-items: stretch;
flex-direction: row;
}
.area-chart tr {
/* Even size items */
flex-grow: 1;
flex-shrink: 1;
flex-basis: 0;
}
現(xiàn)在,我們需要使<td>元素相互覆蓋,一個元素彼此重疊,以便獲得分層效果。每個都<td>覆蓋<tr>包含它的元素的整個區(qū)域。
.area-chart tr {
position: relative;
}
.area-chart td {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
讓我們clip-path: polygon()使用神奇的力量!我們僅顯示--start和--end自定義屬性之間的區(qū)域,該區(qū)域的值再次為0到1:
.area-chart td {
clip-path: polygon(
0% calc(100% * (1 - var(--start))),
100% calc(100% * (1 - var(--end))),
100% 100%,
0% 100%
);
}
現(xiàn)在讓我們?yōu)槊總€顏色添加顏色:
.area-chart td {
background: var(--color);
}
.area-chart td:nth-of-type(1) {
--color: rgba(240, 50, 50, 0.75);
}
.area-chart td:nth-of-type(2) {
--color: rgba(255, 180, 50, 0.75);
}
.area-chart td:nth-of-type(3) {
--color: rgba(255, 220, 90, 0.75);
}
重要的是使用具有不透明度的顏色以獲得更好的效果,這就是為什么我們使用rgba()值。hsla()如果那是您滾動的方式,則可以在這里使用。
而且,就像這樣:
不管我們向圖表中添加多少HTML元素,基于flex的布局都可以確保所有項目的大小均相等。這樣,我們只需要設(shè)置包裝圖元素的寬度,項目就會根據(jù)響應(yīng)布局進行相應(yīng)調(diào)整。
我們已經(jīng)介紹了一種使用純CSS創(chuàng)建面積圖的技術(shù)。如果你覺得這篇文章還可以的話,請給我點個贊
星紅旗迎風(fēng)飄揚,勝利歌聲多么嘹亮……
你知道五星紅旗上的五角星代表著什么嗎?(答案見文章末尾)
五角星
今天我們先來用javacript繪制一下五角星。
【思路】
五角星五個角的總度數(shù)為180度,所以每個角的度數(shù)是36度。根據(jù)三角余弦就可以算出每條邊的長度和起始點。
【代碼】
<body onload='draw()'>
<canvas id="myCanvas" width="500" height="500"></canvas>
<script type="text/javascript">
function draw() {
var canvas=document.getElementById("myCanvas");
var context=canvas.getContext("2d");
context.beginPath();
//設(shè)置各個頂點的坐標(biāo),根據(jù)頂點制定路徑
for (var i=0; i < 5; i++) {
context.lineTo(Math.cos((18+i*72)/180*Math.PI)*200+200,
-Math.sin((18+i*72)/180*Math.PI)*200+200);
context.lineTo(Math.cos((54+i*72)/180*Math.PI)*80+200,
-Math.sin((54+i*72)/180*Math.PI)*80+200);
}
context.closePath();
//設(shè)置邊框樣式以及填充顏色
context.lineWidth="3";
context.fillStyle="#F6F152";
context.strokeStyle="#F5270B";
context.fill();
context.stroke();
}
</script>
</body>
運行效果如圖:
五角星
五星紅旗上的五顆五角星拱衛(wèi)圖形和相互關(guān)系象征共產(chǎn)黨領(lǐng)導(dǎo)下的革命人民大團結(jié),最大的星星代表中國共產(chǎn)黨,四顆小星代表工人、農(nóng)民、知識分子、民族資產(chǎn)階級(即“工、農(nóng)、士、商”)。
五星紅旗,我們永遠的驕傲,我們?yōu)槟阕院溃?/strong>
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。