關鍵詞在關鍵詞布局中需要出現的位置:外鏈、內鏈、頁面標題、描述、頁面導航欄、首頁、欄目頁、專題頁、詳情頁、圖片ALT。以上主要是針對關鍵詞布局展開的需要優化的細節,其實對于SEO排名因素在明面上至少有一百多條,往往我們只是做了其中的幾條,而忽略了很多其它SEO因素。每個關鍵詞的出現位置、出現次數合理,關鍵字的出現才會讓用戶體驗得到提升,才能鎖定精準的流量。
文章來源:北京SEO
藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務
一切都是有一定的規律性。要是你行動太快,只會致使相反的結果。這里分享了SEO優化的原因和解決方案,希望對您有所幫助。
文章來源:北京SEO
藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務
每天努力的用心的去做設計,挺開心的,其中最開心的細節就是“思考自己的設計如何與別人的不一樣”,讓你的差異化產出得到認可后,這將是一件非常非常幸福的事情。
今天和大家分享一個前一陣子做的小案例,做的一個直播貨幣,名字叫星幣。
思考過程如下:
其實“星幣”可發散的空間很小,因為已經非常具象了,無非就是星星、和錢幣。
我們可以看下大概的感覺:
但是如果按照上面的感覺做,那最后出來的效果一定很常規,這也就有了我接下來的思考。
我們仔細觀察,一般參考中的星星都是非常規矩的,無非就是尖角圓角的區別:
要么就是胖瘦的區別:
所以這次我打算做一個不那么規矩的,有點跳遠的感覺、又有點星火的感覺,所以我把星星的一個腳拉長:
然后再把兩個胳膊往上抬一抬:
這樣就好像是一個跳躍的小人一樣,會相對來說活潑一些。
接下來為了讓整體更加和諧,我在錢幣周邊挖了一個小口:
目的就是配合那只伸出來的腳,讓整體感覺更加巧妙一點。
其實星幣很容易聯想到金黃色,如果按照這個設想來做,那就會比較普通,所以我選擇讓他和直播、社區的配色一致:
這樣在顏色方面也就有點自己的調性了。
剛才不是說讓這個星星看起來像個跳躍的小人嘛,那一般人都有表情的,所以我們完全可以再加上一個可愛的表情:
讓整體更加生動形象。
當然,如果星幣在面積小的場景下是看不清表情的,所以需要做成兩種,一種是有表情的, 一種是沒有表情的。最后,還可以再做個有質感的:
后來發現質感做的有點臟,于是又優化了一下質感,效果如下:
整個構思和執行的過程還是可以的的,也得到了大家的認可,不過很可惜的是,后來名字改了,改成了能量幣,哈哈哈哈,通過能量,我又聯想到了太陽,太陽能嘛,執行原理都是一樣的,大概效果如下:
文章來源:優設網 作者:菜心設計鋪
藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務
我們今天主要來講4個主題:
1.顏色使用的誤區-紅色的警示含義
2.功能即按鈕?-兩者的區別與設計思路
3.設計中的樣式-情理之中,意料之外
4.產品體驗案例收集-寧缺毋濫
5.減少步驟就能提高轉化?-少即是多,多即是少
所以,這篇文章還挺有意思的,大伙讀讀看
最近有多個小伙伴來問問題,老師, 我的產品色是紅色,那我用紅色的按鈕會不會給人傳達很強烈的警告?還有我們的產品色是冷色,如果不用暖色按鈕會不會沒有強烈的引導感,我好糾結??!
大家瞅瞅,他像一個好人還是壞人?
吶,顏色情緒表達不在于本身,而是其使用場景。大家都知道顏色都有其兩面性,比如這樣,同樣是黑色系,但是左邊看上去是潮流、硬朗的感覺而右邊則有一些憂郁、沉重的感覺。
所以顏色怎么使用要看用在什么場景,特別是主色的使用,如果本身是紅色或者暖色的主色,那么可以在以下地方使用:
1.希望引起用戶強烈注意的地方(正向/警示)
2.核心轉化按鈕(幾個不同層級)
3.正在激活的板塊(標簽、分段)
但是暖色為主色的產品核心轉化按鈕一定不會是冷色調
所以不用在意主色是紅色而帶來的正負向情緒,因為到了不同場景它的含義自然會變化,如果本身主色為冷色調,那么主色和輔助暖色都可以用在核心轉化的按鈕上或者用其主色,我見過冷色為主色但是核心轉化按鈕是輔助色的情況,我總結了一下,大家可以看以下兩個產品的截圖,如果本身產品的輔助色使用場景和頻率很多,那么在核心轉化和重要按鈕上我們要使用品牌主色,但是如果在工具類型的產品中,輔助色的場景和出現頻率很少,那么核心按鈕和一些關鍵引導信息可以用輔助色。
如果讓你在原有的界面中設計某個功能,你會如何設計?可能我們第一反應就是先給他設計一個按鈕。
按鈕很好理解,我們先看看功能在釋義上怎么說:事物或方法所發揮的有力作用,
阿喲,這一聽,簡直太抽象了!這就好比讓媒婆描述你的相親對象長的怎么樣:小伙子看起來挺老實的,抽象但又很清晰!大家看下面兩個例子:
第一個-刷新,無論是圖標還是文字,我們的預期是點擊之后就會實現在當前狀態/頁面的數據重新獲取
第二個-支付。支付也是一個功能,相比較刷新而言是一個復雜的系統的功能,但是它無法通過一個按鈕來實現功能的全部作用。
很多同學在做信息架構的時候就很懵逼,那我要梳理的是按鈕呢還是這樣的功能呢?我好亂啊。當然,信息架構肯定不是功能的樹狀圖堆砌那么簡單啦,那個頂多叫做功能分類,信息架構需要包含更多的業務邏輯和狀態邏輯。
所以在這里就有三個結論:
有簡單有復雜,但他們都需要通過外部的、具象的元素來實現其作用。
還有滑動、長按、甚至神經控制等等,如果大家玩過賽博朋克2077這個游戲就知道,義體的控制很多來自于大腦和神經,那么這些功能肯定不需要點擊這樣的操作行為啦,所以也不存在按鈕。
我們在做設計的同時要思考,一個功能可以以什么樣的形式存在,要滿足高效、簡約、符合心智模型等約束條件,比如做一個翻頁,沒有人會在app界面中設計一個下一頁的按鈕,抖音切換視頻也不會出現一個按鈕用來切換到下一個視頻,再比如公眾號文章收起需要通過滑動到指定位置,而非設置一個按鈕。
以后再讓你設計一個功能就不要直接做出一個按鈕喔
想把設計做的出彩一定要滿足兩個條件:1.符合常規認知 2.超出常規認知
聽起來有點玄乎啊,第一眼看心知肚明,第二眼看我x,這個牛逼啊。
那其實我們在做UI設計的同時也可以多些創意和想法,不要被慣性思維和熟悉的手法所困擾。有時候你想做一些創意設計但總是被“不統一”這樣的理由所駁回,麻煩把這篇文章轉發給駁回你的人,很多有意思的設計都被淹沒在這些“風險”提示里了。
比如網易云音樂這里的tab,大家都知道tab的樣式和其交互方式,還有和segment的區別,那么如果既不想用segment樣式又不想讓用戶進行所有滑動怎么辦?
沒錯,他們在這個地方用了豎線隔開了,重新感受一下,是不是可滑動的感覺變弱了呢?
還有卡片設計中如何添加標簽可以更順滑,如何讓一個按鈕自然的融合到另一個模塊里。
排版是否可以用異形設計,例如個人中心
我看到很多同學正在體驗各種各樣的產品,然后把一些不錯的案例摘錄下來進行分析,我覺得這是一件很好的事,我在2年前就鼓勵大家這么做,因為這個也是作為一個UI設計師的基本功,除了視覺創意的積累以外也要有交互案例的積累。
但是我發現很多同學有點南轅北轍了,我們需要收錄的是一些優秀的案例,何謂優秀呢,指的就是令人驚喜的功能,而非本該具有的或者無差別的功能(可以了解一下kano模型,這里不細說)。另外就是需要有分析的能力,不是什么案例都是優秀的,有些可能存在著不好的體驗。俞軍在其產品方法論中提到:用戶價值=新體驗-舊體驗-切換成本,所以價值大不大取決于新體驗是不是足夠好。
現在看到的就是可能這個產品把字加粗了,也能寫出一大堆分析這個加粗的好處,或者一個卡片設計就能寫出非常有親和力,信息更聚焦這樣空洞的詞匯,這對于我們積累案例沒有任何的幫助。
例如以下的案例,在編輯狀態返回系統會提示,從而滑出Actionsheet。如果不做用戶體驗會很差,但是做了,用戶并沒有很驚喜,這就是一個必備的功能而已,所以對于一個案例到底是否優秀我們需要盡量客觀的看待。
所以很多交互案例并不是不好,而是還沒有達到能夠被我們收藏的地步,如果沒有撩到你的心,那我覺得咱們就矜持一些。
那什么是一個比較好的交互案例呢?好的交互案例一定是更近一步解決問題和深入場景的,比如我們在場景分析過程中對于預判這個概念的理解,例如行動按鈕前置、替換、引導等等,例如像電影app在近電影放映前彈出取票碼一樣,這個功能如果不做,用戶體驗不會很差,因為依然可以找到這個二維碼,只是用戶想不到居然還可以這樣做,但是一旦研發出來,用戶會覺得非常驚喜,這種就是優秀的體驗設計。
再比如有些你可能覺得體驗好的案例其實還沒分析到位,就像高德地圖在到達目的地時會給你很多場景的補全和選擇,你肯定認為這很人性化啊,但是我在有一次使用“原路返回”功能的時候猶豫了。高德確實在幫助用戶解決問題,但是在這里顯然細節有待商榷。
很多用過這個功能的同學會發現“原路返回”的文案是有歧義的,功能是好功能,正不正緊就看文案了。來,我們解析一下場景:用戶a通過高德地圖導航到地點x,路上非常擁堵,好不容易到達目的地后需要返回起始地,這時高德提供了一個“原路返回”的按鈕,他要不要點?
為什么說這里有歧義呢?
1.如果用戶開始的行駛過程很擁堵,你告訴他原路返回,他的潛意識會覺得原路返回是不是也很擁堵。
2.原路返回到底是不是最佳路線,因為有時候來回路線的最優解并不是同一條馬路的左右兩側。
所以,人是好人,正不正緊俺們也不知道??傊@個文案讓我不得不重新導航。
小結一下,優秀與否需要親自深入的體驗,并且結合上下文、用戶、業務多角度的考慮,并非自己沒見過的就是優秀的設計,咱們寧缺毋濫,提高自己的標準。
很多人一聽到轉化率就會把它和操作步驟關聯起來,只要能減少用戶的操作步驟和縮短任務路徑就可以提升轉化率。這個想法不能說全錯,但也不能直接運用減法去當作提高轉化的手段。
不用管這人是誰,大家可以理解為能量守恒定律,也就是說在所有內容(功能、信息、元素)不變的情況下,步驟越少,單個步驟所承載的內容也就越多。比如你有100個球,給你5個盒子,平均每個盒子放20個球,但是如果拿走一個盒子,平均每個盒子就要放25個。
表面上盒子少了,但是每個盒子多出了5個球,這就意味著原來簡潔的界面包含了更多的信息內容需要用戶去理解、操作、判斷。那我們可以說減少步驟就是提高轉化率嗎?顯然不行。
比如我們看到馬蜂窩和12306在購買車票流程中的表現:
馬蜂窩
1.輸入起始地目的地
2.選擇出發時間
3.查看車次列表并選擇
4.查看車次詳情
5.選擇座位類型、添加乘客信息、選擇座位
6.確認訂單
7.支付
12306
1.輸入起始地目的地
2.選擇出發時間
3.查看車次列表并選擇
4.查看車次詳情、選擇座位類型、添加乘客信息、選擇座位
5.確認訂單
6.支付
大家可以看到馬蜂窩比12306多了一個界面,他們把查看車次詳情單獨用一個界面設計了,而12306則是座位類型、詳情、乘客信息、座位選擇都放在了一個界面,表面上看好像步驟確實少了,但我們能看到像第三方的購票軟件還有其他購票的選項,例如極速訂座、車票+酒店等,所以在這個場景中需要展開展示給用戶,那么如果把這些都放在12306的確認訂單界面就會非常擁擠,而且選中狀態也很不直觀。所以最好的解決方法就是拆成兩步。
再來看個例子,在某個產品的1級界面中,有一個添加訓練計劃的功能。左邊是在1級界面中露出直接添加的按鈕,并且添加成功后在1級界面直接展示。右側則是進入二級界面進行添加。在步驟上來說顯然左側案例的步驟更短,那我們可以說左側的用戶體驗、任務效率就更高嗎?
對嗎?大家可以思考一下。
顯然不能直接說正確與否,因為我們缺少評判的標準和案例的背景對吧。首先左側案例在添加任務流程中確實占優,但是對于需要頻繁增刪改查的用戶而言就很不方便了,而且一直添加就會使首頁下方內容推到很底部大大降低了曝光。而右側的案例則更適合用戶進行批量操作。
所以路徑的長短并不能直接表示轉化率的高低,那么有哪些情況可以縮短路徑達到提高任務完成效率的目標呢?
1.減少步驟后不影響用戶對界面和內容的理解
2.減少步驟后內容信息依然符合場景,不沖突
3.需要實時檢查任務結果
4.有足夠的版面可以進行內容合并
5.合并后對任務目標不會造成歧義
比如下面這個案例,一個書籍分類搜索原本的2個步驟是可以合并的,因為在原來的版本中,用戶如果想切換更高級別的分類需要退出再選擇,而一個界面其實就可以實現3級聯動的效果,當然僅限于這個案例,根據業務不同我們需要對這些多層級、多類目的分類做更多的考量。
再來看一個案例,下面是一個預定籃球場地的流程,在這個流程中有幾個關鍵的節點:場地類型、日期和時間,因為籃球場地和老板需求的特殊性,所以我們不橫向去比較,我們可以來看看下面這個小程序的流程,預定步驟一共5步
1.時間和場地的選擇
2.查看場地詳情和說明
3.選擇具體時間
4.確認訂單詳情
5.支付
我們先不討論里面信息字段是否合理(最后確認訂單還要填寫性別和名字是什么鬼,打個球還要查家底嗎),我們先來看這5個步驟是否可以簡化。
一定是可以的,首先,日期和時間是屬于同一緯度同一場景的信息,我在幾月幾號幾點預約一個場地,這和看電影就完全不同了,每個電影院排期不同所以不能先把日期和時間都選了,但這里是可以一起選擇完成的。那么第三個步驟完全沒有必要,直接和第一個界面結合即可。
另外,不要被先入為主的樣式給蒙蔽了,場地一定要做成列表嗎?除非特殊場地,每一個半場其實都是一樣的,可能在光線和設施上有些區別,但是對于經常打球和第一次預約的用戶來說其實沒有實質的區別,所以這里可以用宮格形式替代。
然后查看詳情和說明個人覺得也比較多余,經常預約打球的用戶已經非常熟悉場地了,對于新用戶來說也只是看一下場地的環境,所以這個頁面本身內容就不多,所以可以直接和確認訂單詳情結合,將確認訂單頁的內容做減法。這樣是不是整個流程減少了兩步,大大的提升了任務完成的效率呢?
每個人都有自己的慣性思維和刻板印象,有時候能幫助我們更高效的完成任務,但有時候這些潛意識的反應也會讓我們深陷泥潭而不自知。只有當我們深入剖析一個問題時,才能發現其本質,適當讓自己保持批判性思維是有幫助的。
文章來源:站酷 作者:應駿
藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務
最近在社群里有人問,有什么總結和復盤的經驗嗎?感覺自己表達能力很差啊。今天,彩云就跟大家分享一些我的經驗,希望能幫到有類似問題的朋友。
以上類似的問題,相信不少朋友都遇到過:
1)明明自己做的設計不差,但不懂得怎么去跟其他人推進自己的方案
2)明明自己已經很努力,設計能力也不差,但總是被其他能說的同事占了主導
3)項目做完了,不知道怎么復盤和包裝,跟面試官介紹項目的時候感覺講不出亮點
復盤表達能力在職場中的作用不用多說,大家都懂,那如何提升呢?我給你支幾招,絕對好用:
1)善于記錄,把想法轉化成文字
2)做事多想想附加價值
3)多跟別人分享,輸出倒逼輸入
4)學會模仿,掌握說話的節奏
5)復盤的具體操作
復盤和表達其實是2個能力維度的事,一個是文字總結提煉能力,一個是語言組織表達能力。所以,我在平時會有針對性的去做下面這些練習,分享給大家。
腦子中的想法和口中說的話,往往是比較零碎不系統的,而文字則讓你有更多時間思考和梳理。不管是從邏輯性還是簡練程度上,文案能力都會更加能鍛煉一個人的總結能力。
可能從一開始讓你寫大段的文章對很多人來說,是很困難的一件事,但你可以從小事開始。比如每天寫總結,記錄自己的想法,這些想法可以來自于學到的知識、突然的靈感或者對某件事的看法等等。
關于記錄,我一般先快速寫下當時的想法,幾個關鍵字,句子不通順都沒關系。但一定不能拖延,要不然過了那個時刻,你可能就覺得好像沒啥值得記錄的或者干脆就忘記了。等寫的差不多了,再回頭來調整語句,調整邏輯問題,就跟設計做改稿一樣,當時記錄的是初稿,然后再不斷優化就好了。切忌完美主義者,動手記錄更加重要。
我自己是從畢業以來一直保持著記錄的習慣,而且隨著寫的量越來越多,寫的速度也是越來越快。比如這段文字,就是在班車上20多分鐘內寫下來的。
高質量的記錄內容來自哪里?除了完成需求外,多想想這件事做完之后,還能給自己帶來什么其他的價值沒有?比如產品讓你做一個設計需求,做完它并過稿是最基本的要求,因為這部分是交換工資的價值。那還需要去思考,如何通過這個需求去放大價值。比如,這個需求能不能成為自己作品集中的一個作品?能不能把這個需求總結成一篇文章?能不能把這個需求做出亮點然后成為自己出去分享的案例等等。
如果答案是肯定的,有時間的話,一定要去達成后面的這些增值的部分。如果是有這些目標的話,你可能就會很自然的去記錄過程中遇到的問題,思考需求的前因后果,記錄最終的數據等等,因為你可能將來某一天要出去跟別人講的嘛。
通過這樣的動作,就能加深對需求本身的理解,也就是所謂的深入。有了這些記錄和思考,讓你再去寫一篇總結也就是水到渠成的事了。
把自己的想法講出來給別人,其實是一個非??简炄说氖?。不知道大家有沒有這樣的感覺,明明這個項目是自己從頭到尾跟進的,但讓你完整的跟別人講出來卻發現很有難度。
要跟別人講明白一個道理,就必須自己真正理解透徹才可以。這就會倒逼你,真正梳理好自己的所學。而當你真正跟別人講過一次之后,關于這個知識點或者項目的細節,你會印象深刻。
我習慣在學到一個新的知識點后,興奮的找同事朋友們去分享我的收獲,一方面是能加深自己對知識的理解,進一步鞏固所學,另一方面也想鍛煉自己的表達能力。
演講也是需要練習的,沒有誰天生就擅長,講的多了,應變能力、總結能力都能提上來。
表達能力怎樣提升?模仿是一個很好的方法。我自己經常會去看一些大佬的演講,像俞敏洪的演講我是非常喜歡的。然后還有TED的演講,佩服他們能在短短5-10分鐘內,把一個內容很好的講完,并且聽眾還容易理解。
學習大佬們在什么情況下會停頓,如何與觀眾進行互動,甚至包括演講時的姿態,表情,手勢都可以模仿和研究。聽的時候,帶著目的去觀察,相信能學到很多平時不注意的細節。
注意說話時的停頓和語速,可以理解為設計中的留白和行距。好的留白間距,能使得讀者獲得更好的閱讀體驗,演講也是如此。但說的容易,做起來難,如果缺少練習,在實際的匯報、述職或公開演講中由于緊張或者其他狀況,很難讓你從容應對。
這部分也是需要對應的學習和練習的。
針對實際項目,一般可以從以下6個方面來進行復盤:
1)定位目標
從前面說的記錄中,或者可以咨詢產品、運營,某個具體的需求目標是什么,從產品維度,運營維度,設計維度等多角度進行目標回顧。
2)應對過程
簡單說,就是自己遇到這個需求后是怎么去解決這個問題的。仔細思考自己的應對過程,并分析過程中有沒有可以改進的點。
3)評估結果
最終的結果,有沒有達到預期?是好的還是不好的,把一些數據和用戶評價拉出來,作為結果。
4)分析原因
不論結果如何,都應該分析其成功或者失敗的原因,從過程中的每一個環節去思考,這些經驗都是最寶貴的。
5)發現規律
從原因中找到規律,這個規律也就是所謂的方法論,這些方法論是否具有普適性,也就是你得到的這套經驗能不能復用到其他項目中,或者沒有做過此類項目的設計師拿到你的方法論,能不能很好的復用你的經驗把項目做到你這樣的結果或者是能做的更好。
6)沉淀文檔
最終,把這些方法論、設計規范、經驗教訓等等,以文檔的形式記錄下來,就完成了一個真正的完整項目沉淀。這些也是設計師做需求時的一種價值放大,很多優秀的資深設計師都擅長做這件事。
在面試或演講時,也應該按照這樣的邏輯順序去講你的項目,心里有譜,講話才靠譜。
復盤和演講,在職場中都是非常重要的能力,但那些能說會道的人,PPT寫的很厲害的人,也并非天生就如此。他們也都是后天在工作中不斷的練習得到提升的。
像解決所有困難的事情一樣,學會拆解,總結能力也是如此。
文章來源:站酷 作者:彩云Sky
藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務
概念:數組是一組數據的集合,其中每一個數據稱為數組元素,js的數組可以放任意數據類型的元素,數組是一種將一組數據元素存儲在單個變量名下的優雅方式。
示例解釋:
//普通變量名只能存一個數據 var num = 10 //數組存儲一組數據 var arr = [1,2,3,4,5,'a','b','c']
數組的創建方式:
1、通過new關鍵字創建(不常用)
//注意A要大寫 var 數組名 = new Array() var arr = new Array()//創建一個空數組 var arr = new Array(5)//創建一個長度為5的空數組
2、通過數組字面量創建(常用)
//1、使用數組字面量創建空數組 var 數組名 = [] //2、使用數組字面量創建帶初始值的數組 var 數組名 = [元素1,元素2,元素3···] 如:var arr = [1,3,5,'a','c','e',7,9]//數組元素可以是任意數據類型的
小結:
1.數組是一組數據的集合,是將一組數據存放在同一變量的優雅方式
2.數組的字面量:[ ]
3.聲明數組并賦值稱為數組的初始化
4.數組中元素可以是任意類型的數據
5.注意:數組元素為字符或字符串要加引號,不加的話解釋器會認為是變量從而報錯
索引(下標):用來存放數組元素的序號(數組下標從0開始)
我們可以通過索引來訪問、設置、修改相應的元素,注意:數組的長度可以不指定,它可以隨元素的增加自動擴容,當訪問未賦值的元素時,返回undefined。獲取方式: 數組名[索引號]
下面通過例子來演示一下:
//定義數組 var arr = [1,3,5,'a','b','c']---->//注意字符串要加引號,不然解釋器會認為是變量而報錯 console.log(arr)---------------->Array(6)//輸出數組長度 console.log(arr[0])------------->1 console.log(arr[2])------------->5 console.log(arr[4])------------->b
console.log(arr[6])---------- -->undefined//索引下標6沒有元素,所以返回undefined 注意:數組的下標從0開始喲!??!
請看下面代碼:
var arr = ["red","blue","green"] console.log(arr[0]) console.log(arr[1]) console.log(arr[2]) //輸出結果:red blue green
從上面代碼觀察發現,取出每一個元素只是數組下標改變而已,如果數組元素多的話,一行一行訪問速度很慢,為提高效率,我們可以用循環
//1、使用for循環遍歷 var arr = ["red","blue","green"] for(var i = 0;i<arr.length;i++){//length是數組的屬性,即為數組長度,沒有() console.log(arr[i]) } //輸出結果:red blue green
//2、使用for in循環遍歷 var arr = ["red","blue","green"] for(var i in arr){ console.log(arr[i]) } //輸出結果:red blue green
以上訪問數組元素的結果是一樣的,使用循環可是很便利的
下面做兩個小案例來演示下數組的魔力吧!
案例1
使用數組對一組數求和并求平均值,思路:定義2個變量,一個存總和,一個存平均數,通過遍歷數組求和,然后除以數組長度求平均數
案例1實現代碼 //使用數組對一組數求和并求平均值 var arr = [1,3,5,7,9,2,4,6,8] //聲明一個數組并初始化 var sum = 0; //創建一個變量來存取各數字之和 var avg = 0; //創建一個變量來存取平均數 for(i=0;i<arr.length;i++){ sum += arr[i]; //相當于 sum = sum + arr[i] } console.log("sum:"+sum) //打印sum的值,即所有數的和 avg = sum/arr.length //求平均值并賦值給avg(arr.lengt是數組的個數) console.log("avg:"+avg) //打印avg的值,即所有數的平均數 //輸出結果:sum:45 avg:5(這里僅是演示,沒有對結果為多位小數進行處理)
案例2
使用數組對一組數求最大值,圖例思路:把數組第一個元素賦值給max,依次遍歷比較,如果有元素大于max,則把此元素賦值給max,遍歷后比完max即為最大值
案例2實現 //使用數組對一組數求最大值 var arr = [1,3,5,7,9,2,4,6,8] //聲明一個數組并初始化 var max=arr[0]; //創建一個變量來存取最大值,把arr[0],即1賦值給max for(i=01;i<arr.length;i++){ if(arr[i]>max){ max=arr[i]//判斷是否有數組元素大于max,有的話就把大于max的值賦值給max } } console.log("max:"+max) //打印max的值,即數組中最大值 //輸出結果:max:9
// 注意!length是屬性,不是函數,所以不用加() var arr = [1,2,3,4,5]; console.log(arr.length) //輸出結果:5 通常數組的length屬性跟數組遍歷一起使用,使用循環遍歷數組要注意
數組元素最后一位的索引下標是數組長度-1(arr.length-1)
// 創建數組,通過length屬性擴容數組 var arr = ['a','b','c','d']; console.log(arr.length)//輸出結果為4,數組長度為4 console.log(arr[3]) //輸出數組最后一位元素的值為d arr.length=6; //數組長度擴容為6 console.log(arr) //輸出結果為6,數組長度為6,第四第五個元素的值為empty console.log(arr[4]) //未賦值,默認為undefined console.log(arr[5]) //未賦值,默認為undefined
輸出結果入圖
3. 通過索引號實現數組擴容
// 創建數組,通過索引號擴容數組 var arr = ['a','b','c','d']; console.log(arr.length)//輸出結果為4,數組長度為4 console.log(arr[3]) //輸出數組最后一位元素的值為d arr[4]='A' //給第五個元素進行賦值,因為第5個元素沒被占用,所以會在數組后面追加元素 arr[5]='B' //給第六個元素進行賦值 arr[10] = 'C' //給第11個元素進行賦值 console.log(arr) console.log(arr[6])
運行結果如圖,可以發現,JS數組可以直接通過索引號進行擴容,而未賦值的元素默認為empty,返回結果是undefined,如果元素不存在,則在數組后面追加元素,若已經存在,則替換數組元素–>arr[3]
注意:不要直接給數組名賦值,否則會覆蓋原有數組!
// 演示 var arr=[1,2,3,4,5] console.log(arr)//打印原數組 arr="有點意思!" console.log(arr)
1. shift()刪除數組中的第一個元素并且返回被刪除的元素,
同時其他元素的索引向前移動一位
var fruits = ['banana', 'orange', 'apple', 'mango'] console.log(fruits) //打印原數組 var x = fruits.shift(); //首元素刪除 console.log(fruits) //刪除后的數組,數組元素向前索引移動一位 console.log(x) //打印被刪除元素的值banana
結果如圖:
2. pop()刪除數組中的最后一個元素并且返回被刪除的元素
var fruits = ['banana', 'orange', 'apple', 'mango'] console.log(fruits) //打印原數組 var x = fruits.pop(); //末尾元素刪除 console.log(fruits) //刪除后的數組 console.log(x) //打印被刪除元素的值mango
結果如圖:
3. unshift(參數1,參數2···)向數組的開頭添加一個或者更多的元素并且返回新的長度,
同時數組元素的索引向后移動
var fruits = ['orange', 'apple', 'mango'] console.log(fruits) //打印原數組 var x = fruits.unshift('banana'); //添加后返回數組長度 console.log(fruits) //添加后的數組 console.log(x) //打印新數組的總長度
結果如圖:
4. push()向數組末尾增添一個或者多個數組元素,并且返回數組的長度
var fruits = ['orange', 'apple', 'mango'] console.log(fruits) //打印原數組 var x = fruits.push('banana'); //添加一個數后返回數組長度 console.log(fruits) //添加一個元素后的數組 console.log(x) //打印添加一個數后新數組的總長度 var x = fruits.push('pineapple','strawberry');//添加多個元素后返回數組長度 console.log(fruits) //添加多個元素后的數組 console.log(x) //添加多個元素后的總長度
結果如圖
5. reverse()翻轉數組
var fruits = ['orange', 'apple', 'mango'] console.log(fruits); //打印原數組 console.log(fruits.reverse()) //打印翻轉后的數組
結果如圖:
6. sort()數組排序,對字符串排序,比較的是ASCII碼的順序
1>如["a", "A", "1"], 按ASCII碼順序排列后為["1", "A", "a"](數字>大寫字母>小寫字母)
2>如["ab", "ac", "abc"], 排序后為["ab", "abc", "ac"]
3>字符串數字:如["10", "5", "18" , "50"], 排序后為["10", "18", "5", "50"]
比較方法:
(第一位相同比較第二位,b>c,因此ab和abc在ac之前;再比較ab與abc, ab沒有第三位,因此排在abc之前)!!!
如需要對字符串形式的數字進行排序,可以采用以下兩種方式:
1、統一格式,補足位數,如["10", "5", "18" , "50"]中, 將"5"寫為"05"
2、轉換為數字,使用特殊方法對數字排序
var arr1 = ["a", "A", "1"] var arr2 = ["ab", "ac", "abc"] var arr3 = ["10", "5", "18", "50"] var arr4 = ["10", "05", "18", "50"] console.log(arr1.sort()); console.log(arr2.sort()); //比較方法:按ASCII碼比較排序 console.log(arr3.sort()); console.log("數字排序(5改成'05'):" + arr4.sort());
結果如圖:
1、匿名函數當做參數使用數組排序(一維數組)
//語法格式:
arr.sort ( function (a, b) { //arr為需要排序的數組名
return a - b //升序
})
根據比較函數返回值正負來決定排列順序,為正升序,為負降序
使用如下:
function sortby(a, b) { return a - b //升序 } //降序就改成return b-a var arr = [10, 5, 8, 50]; arr.sort(sortby)//把排序匿名函數當做參數進行調用 console.log(arr);//輸出排序后的結果 //匿名函數的函數名任意 結果如圖:
2、匿名函數當做參數使用數組排序(二維數組)
//語法格式:
arr.sort (function (a, b) { //arr為需要排序的數組名
return a[1] - b [1] //升序,降序改為b[1]-a[1]
})
使用如下:
function sortby(a, b) { return a[1] - b[1] //升序 } //降序就改成return b-a var arr = [["Alice", "95"], ["Bob", "80"], ["Cart", "100"]] arr.sort(sortby)//把排序匿名函數當做參數進行調用 console.log(arr);//輸出排序后的結果 //匿名函數的函數名任意 結果如圖:
將數組[2,4,5,6,8,9,12,15,3,7,26,14]中大于10的元素存入新數組
//分析:
1、創建一個數組arr=[2,4,5,6,8,9,12,15,3,7,26,14]
2、創建一個新數組newArr來存放大于10的元素
3、遍歷舊數組,找出大于10的元素
4、依次添加到新數組中
// 方法1,通過變量來增加數組長度 var arr = [2,4,5,6,8,9,12,15,3,7,26,14] //創建一個數組 var newArr=[] //創建空的新數組,用于存放大于10的元素 var j =0 ; //定義變量,用于增加新數組的長度 for(var i = 0 ;i<arr.length;i++){ //for循環遍歷數組 if(arr[i]>10){ //判斷數組元素是否大于10 newArr[j]=arr[i] //如果arr數組元素>10,則存入新數組 j++; //當存入元素,長度+1,即j++ } } console.log(newArr)//打印新數組
// 方法2,巧用length屬性 var arr = [2,4,5,6,8,9,12,15,3,7,26,14] //創建一個數組 var newArr=[] //創建空的新數組,用于存放大于10的元素 for(var i = 0 ;i<arr.length;i++){ //for循環遍歷數組 if(arr[i]>10){ //判斷數組元素是否大于10 newArr[newArr.length]=arr[i]//如果arr數組元素>10,則存入新數組 } //巧用length屬性,數組索引從0開始增加 } console.log(newArr)//打印新數組
結果如圖:
概念:二維數組就是一維數組的每個元素是一個一維數組
// 創建與訪問
var fruits = [["1", "Banana"], ["2", "Orange"]];//創建二維數組 var element = ["3", "Apple"]; fruits[2] = element; //給第三個元素賦值 console.log(fruits); //打印二維數組 console.log(fruits[0]); // ["1", "Banana"]//打印第一個元素(數組) console.log(fruits[0][1]); // "Banana" //打印第一個元素的第2個值
結果如圖:
通過for in循環遍歷二維數組
var fruits = [["1", "Banana"], ["2", "Orange"], ["3", "Apple"]]; for (var i in fruits) {//控制外層數組元素 for (var j in fruits[i]) {//控制內層數組元素 console.log(fruits[i][j]);//輸出數值中每一個元素 } }
結果如圖:
小結:二維數組跟一維數組使用差不多,只是稍微麻煩一點,訪問二維數組的具體元素值:arr[外層數組索引][內層數組索引]
遍歷二維數組使用雙重for循環
圖例解釋:
//代碼實現如下 var arr = [5,4,3,2,1]; for (var i = 0; i < arr.length - 1; i++) {//外層循環控制交換趟數,趟數為數組長度-1 for (var j = 0; j < arr.length - 1 - i; j++) {//內層循環控制每一趟需要交換的次數 if (arr[j] > arr[j + 1]) {//判斷前面一個數是否大于后面一個數,如果是則交換兩數 var temp = arr[j];//臨時變量,用于交換兩數的臨時存取 arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } console.log(arr);//輸出排序后的結果
結果如圖:
本次筆記主要記錄了數組的基本使用,但是數組的妙用遠不止這些,需要我們自己去探索。
轉自:csdn論壇 作者:想要搞錢
藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務
jsonp
的核心原理是利用script
標簽沒有同源限制的方式,可以發送跨域的get
請求(只能發送get
請求)。script
標簽中的src
屬性將請求參數和當前請求的回調函數名拼接在鏈接上。最終由服務端接收到請求之后拼接成前端可執行的字符串的形式返回。這個結果字符串最終會在前端的script標簽中解析并執行。
利用<script>
標簽沒有跨域限制的漏洞,網頁可以得到從其他來源動態產生的JSON
數據。JSONP
請求一定需要對方的服務器做支持才可以。
JSONP
和AJAX
對比: JSONP
和AJAX
相同,都是客戶端向服務端發送請求,從服務端獲取數據的方式。但AJAX
屬于同源策略,JSONP
屬于非同源策略(跨域請求)。
JSONP
優缺點: JSONP
優點是簡單兼容性好,可用于解決主流瀏覽器的跨域數據訪問的問題。缺點是僅僅支持get
方法具有局限性,不安全,可能會遭受XSS
攻擊。
jsonp
回調函數的名稱callbackName
拼接到src
上
script
標簽,設置它的src
屬性
callbackName
回調函數,等待script
標簽請求結束,并調用
/**
* jsonp獲取請求數據
* @param {object}options
*/ function jsonp(options) { // console.log(options); // 1. 產生不同的函數名(函數名隨機) let callBackName = 'itLike' + Math.random().toString().substr(2)+Math.random().toString().substr(2); // console.log(callBackName); // 2. 產生一個全局函數 window[callBackName] = function (params) { // console.log(params); // console.log(options.success); if(params !== null){ options.success(params); }else{ options.failure(params); } // 2.1 刪除當前腳本標簽 scriptE.remove(); // 2.2 將創建的全局函數設為null window[callBackName] = null; }; // 3. 取出url地址 let jsonpUrl; if(options.data !== undefined){ jsonpUrl = options.url + '?' + options.data + '&callBack=' + callBackName; }else { jsonpUrl = options.url + '?callBack=' + callBackName; } // console.log(jsonpUrl); // 4. 創建script標簽 let scriptE = document.createElement('script'); scriptE.src = jsonpUrl; document.body.appendChild(scriptE); }
服務端(express)
router.get('/api/v1', function(req, res, next) { res.json({ 'name': '前端收割機', 'address': '廣東', 'intro': '前端技術交流公眾號' }); });
調用jsonp
btn.addEventListener('click', ()=>{ jsonp({ url: 'http://localhost:3000/api/v1', data: 'name=前端收割機&age=20', success: function (data) { console.log(data); }, failure:function(data){ console.log(數據請求失敗); } }); });
show
)當做參數值,要傳遞給跨域請求數據的服務器,函數形參為要獲取目標數據(服務器返回的data
)
<script src=>
標簽 ,把那個跨域的API
數據接口地址,賦值給script
的src
, 還要在這個地址中向服務器傳遞該函數名(可以通過問號傳參?callback=show
)。
show
,它準備好的數據是 show('前端收割機')
。
HTTP
協議返回給客戶端,客戶端再調用執行之前聲明的回調函數(show
),對返回的數據進行操作。
/**
* jsonp獲取請求數據
* @param {string}url
* @param {object}params
* @param {function}callback
*/ function jsonp({ url, params, callback }) { return new Promise((resolve, reject) => { let script = document.createElement('script'); params = JSON.parse(JSON.stringify(params)); let arrs = []; for (let key in params) { arrs.push(`${key}=${params[key]}`); } arrs.push(`callback=${callback}`); script.src = `${url}?${arrs.join('&')}`; document.body.appendChild(script); window[callback] = function (data) { resolve(data); document.body.removeChild(script); } }) }
服務器(express
)
// 后端響應 // 這里用到了 express var express = require('express'); var router = express.Router(); var app = express(); router.get('/say',function(req,res,next) { //要響應回去的數據 let data = { username : 'zs', password : 123456 } let {wd , callback} = req.query; console.log(wd); console.log(callback); // 調用回調函數 , 并響應 res.end(`${callback}(${JSON.stringify(data)})`); }) app.use(router); app.listen(3000);
調用jsonp
// 前端調用 btn.addEventListener('click', ()=>{ jsonp({ url: 'http://localhost:3000/say', params: { wd: '前端收割機' }, callback: 'show' }).then(data => { console.log(data) }); });
基本原理:利用 script
標簽的 src
沒有跨域限制來完成實現。
優缺點:只能 GET
;兼容性好。
簡單實現:通過 url, params, callback
來定義 JSONP()
方法的參數。
轉自:csdn論壇 作者:imagine_tion
藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務
網站前言:核心思想 。
1、四處一詞
(1)文章標題帶關鍵詞
(2)文章關鍵詞標簽,描述標簽帶關鍵詞
(3)文章內容帶關鍵詞
(4)其他文章錨文本設置關鍵詞
2、五金定律
(1)你是否重要?
指的是某個url的權重,這個權重可以是首頁,也可以是其他頁面,一個網站只有權重高,才能有好的排名。
(2)你是什么?
我就是那個關鍵詞,說明你網站關于那個關鍵詞最專業。這里可以借鑒四處一詞設置。
(3)你是否是原創
一個好的內容才能更容易排名,百度喜歡新鮮的內容,最差是偽原創。
(4)你是否是最新的
每個頁面都有最新模塊、隨機模塊,這樣可以保證搜索引擎來抓取每個頁面的時候都是不一樣的。
(5)你是否是最受歡迎的
指的是網站的PV值比同行高,這個后期可以慢慢培養。
主內容
一、域名的選擇
(1)如果是做英文關鍵詞,域名首字母應該是是英文關鍵字。
例:我想做seo這個詞,我的域名是 www.seofeiyu.cn
(2)如果是中文關鍵詞可以隨便,最好做成公司品牌的域名,這樣有助于以后宣傳,讓人們記住。
(3)域名可以選擇老域名指的是:域名之前做過網站無任何違法亂紀行為,可以繼承原網站的權重,不必從新再來。
二、服務器的選擇
(1)服務器最好選擇云服務器,獨立的IP,不要選擇空間、主機,這樣可以防止別的網站降權影響不到別的網站,和網站被入侵其他網站不影響。
三、首選域,url的標準化
(1)首選域:域名解析,如果有www的和不帶www的,我們應該301重定向到一個主域名,這樣有利于權重集中,不分散。
(2)url的標準化:網站內所有指向首頁的url鏈接,應該是統一的,不應該有 .index .php 后綴的,這樣會讓搜索引擎分辨不出哪個是首頁,我們應該主動提交,讓搜索引擎知道那個是我們的主頁。
四、TDK的設置(標題標簽,關鍵詞標簽,描述標簽) 重要
1、標題標簽 :關鍵詞1_關鍵詞2 _關鍵詞3 - 品牌詞
最重要的詞放在最左邊,剩下的依次排序,關鍵詞最好出現3-5次左右,關鍵詞越多權重越分散
2、關鍵詞標簽:關鍵詞的選擇最好在標題中提取組合,關鍵詞寫7個左右最好,關鍵詞不要重復堆徹,容易造成降權。
3、描述標簽:對公司的介紹,產品的描述等,字數在80-100個字左右,關鍵詞出現2-3次最好,不要重復
TDK設置好了對整個網站主關鍵字提升起到非常大的作用,反之會對網站排名造成影響。
五、網站的結構
1、因為人們的習慣是從上往下看,從左往右看,所以網站的結構遵從 F 型結構 。
2、網站首頁應該有 最新文章模塊、隨機文章模塊、應該還保留一個文章不收錄的模塊,因為首頁的權重最高,可以增加文章的權重入口。其他頁面也應該有這幾個文章模塊,可以增加文章收錄,保證蜘蛛來抓頁面的時候都是最新的,這樣蜘蛛會很喜歡。
3、關鍵詞的布局:網站首頁應該做 2-3個主關鍵詞,欄目頁2-3個關鍵詞,文章頁1-2個關鍵詞,其他關鍵詞分散到聚合頁面。
4、網站頁面鏈接最好是靜態鏈接,如果是動態鏈接可以做成偽靜態,因為靜態鏈接蜘蛛好抓取收錄,動態鏈接雖然也能抓取,但鏈接參數有可能讓蜘蛛進入死循環,不利于抓取收錄。
5、網站連接到首頁應該采用絕地地址,不要用相對地址,好處是給首頁集權,防著網站被鏡像。
六、網站導航設置
1、主導航:主導航文字設置,最好加上關鍵詞,這樣會增加關鍵字在頁面出現的次數,有利于排名,如:seo資訊 seo培訓。
2、位置導航:如:seo首頁>欄目頁,首頁鏈接加上主關鍵詞,這樣相當于錨文本鏈接到首頁,增加首頁關鍵詞的排名,其他頁面也如這種形式。
3、次導航:也稱為頁腳導航,在網站頁腳寫一段話,出現主關鍵詞連接到首頁,不要重復,做好了可以增加關鍵詞排名,用不好會給網站造成影響,慎用!
七、錨文本的設置 重要!
1、頁面錨文本:可以設置兩個,一個指向首頁、欄目頁或聚合頁面,另一個指向文章頁面。
2、內部錨文本鏈輪:可以在5-6頁面錨文本做成一個鏈輪,指向一個關鍵詞頁面,在指向首頁、欄目頁或聚合頁面,這樣頁面之間的權重互相傳遞,給關鍵詞增加權重。 有的說這樣不好,慎用!
八、網站外部鏈接的設置
1、友情鏈接的設置:
(1)網站友情鏈接不要超過10個,多了的話會造成權重流失嚴重,對面的網站也是多了的話,給自己的權重有限得不償失,如果對方的網站很有價值的話可以不用考慮。
(2)鏈接的網站也應該注意考察對方的網站有沒有降權,和違法內容,如果不注意會牽連自己網站,造成降權等嚴重后果,友情鏈接在精而不在多。
(3)鏈接的網站應該有自己的網站有相關性。
2、外鏈的設置:
外鏈可以寫軟文帶上自己網站的鏈接,發布到各大平臺,增加百度抓取的入口。也可以在微博等社交平臺留下自己網站的鏈接。
注意:外鏈的發布應該考察對方平臺的可靠性,有沒有被百度懲罰,和違法內容,在這里給大家提供一個平臺 “搜外網” 大家可以去試試。
九、網站其他設置
1、robots.txt的設置:這個文件放在網站的根目錄下,搜索引擎來網站爬取的第一個文件,可以告訴搜索引擎蜘蛛,該抓取那個不抓取那個,如果不會,可以不用設置。設置好了再百度平臺更新下,測試抓取看有沒有問題。
3、網站地圖的設置:這個很有必要,可以讓搜索引擎蜘蛛快速的抓取網站所有連接,可以在robots文件寫上,讓蜘蛛主動過來抓取網站連接,設置好了百度平臺提交。網站地圖的形式有xml、txt格式的。
注意:網站地圖最多放5萬條鏈接,多了的話可以設置多個地圖。
優先級別:allow (可以抓取) 級別高于Disallow (不可以抓取)
4、熊掌號的綁定:在百度注冊個賬號,登錄百度平臺綁定網站,網站綁定熊掌號,這樣百度會增加對網站的信任度。
5、404頁面的制作:放在網站根目錄下,網站死鏈接自動跳轉到404頁面,用戶手動點擊跳轉選擇,不要自動跳轉,聽說這樣有可能會被百度懲罰。
常見問題總結
1、網站內容不收錄怎么辦?
(1)網站每個頁面設置個專門放不收錄文章的模塊,增加權重入口。
(2)已收錄的文章錨文本鏈接到沒收錄的文章,權重傳遞增加收錄幾率。
(3)百度平臺文章診斷把沒收錄的文章診斷一下,如果沒問題可以增加收錄。
(4)未收錄的文章在首頁展示一段時間,增加權重入口。
2、怎么讓百度知道你的網站是干什么的?
(1)標題、關鍵詞。描述標簽出現主關鍵詞。
(2)頁面多次出現關鍵詞,密度在5% - 8% 左右,關鍵詞布局要自然
網站內部優化細節
一、網站選詞
1.定詞根 比如:seo
2.根據詞根,按照需求擴業務,比如:seo培訓 ; 擴需求:比如:seo優化工具
注意:
1、圍繞 主詞(也就是詞根)擴詞,這樣網站的相關度高,優化起來也比較好優化
2、相同的主詞,可以放在同一欄目頁面優化,比如:網站推廣、網絡推廣
二、欄目標題寫法
1、專注主詞+主詞修飾詞+品牌詞后跟主詞
例如:seo_seo網站優化-飛羽seo
2、專題頁面寫法:
標題可以寫問題,描述可以寫答案,吸引人懸念
標題寫法:飛羽seo可以免費優化
描述寫法:為了回饋這一年來新老客戶的信任和推薦,因此過年國家法定節假日期間,飛羽seo免費為大家優化網站作為感謝!
三、為什么網站可以秒排名
1、標題很內容,主題集中
2、標題關鍵詞在內容頁面中的密度
四、什么樣的內容頁面才算一個優質的頁面?
有文字、圖片或視頻、評論、相關內容展示等,內容種類越多頁面越優質。
注意:圖片占文字內容的60%最好,左右兩邊各空20%。
五、什么樣的內容算是一個好的內容?
不通順的內容 < 空的內容 < 偽原創內容 < 原創的內容 < 優質的原創內容
六、新站頁面如何快速收錄(首頁收錄的越快網站的優化結構基礎越好,百度給出的基礎評分也就越高)
1、網頁打開速度(影響打開速度的有:服務器的配置、圖片大小、加載的js和css)
2、標題、關鍵詞、描述標簽的設置,關鍵詞標簽選詞從標題關鍵詞組合設置
3、網站頁面的總數量
總數量包括:首頁+欄目頁+內容頁
4、網站每天跟新文章的數量越多,百度抓取的頻率越高,收錄的幾率越高
注意:收錄的文章把文章標題放在百度搜索中,出現在百度首頁第一位是有效索引,不是第一位的話,只代表收錄了,沒建立有效索引,不參與關鍵詞排名,只有有效索引的頁面才會參與關鍵詞排名。
5、內容質量 內容質量+數量(內容豐富字多)
七、什么樣的文章頁面容易建立有效索引?
1、頁面內容豐富:不少于500字以上的內容+清晰的圖片尺寸(水印不影響圖片的瀏覽)+ 訪客的評論內容+內容的相關文章+其他(種類越多越好)
注意:內容文章不要便宜主詞,如果文章總數便宜30%,那么主詞很難優化上去,因為你的網站偏離主題了。
八、總結:秒排名的7項因素
1、TDK的設置(標題標簽、關鍵詞標簽、描述標簽)
2、網站打開速度(百度規定網站1.5秒全部加載完會給網站一個加分)
3、頁面質量(內容排版、內容原創度、圖片清晰、內容豐富長度)
4、主題集中 (最好是標題里的關鍵詞在內容頁面全部有展示)
對等性(整個網站圍繞一個主題詞根進行延伸和擴展)
豐富性(網頁內的每一個版塊范圍,內容盡量飽滿一點,無空缺)
5、需求維度 (頁面內容的多樣性)
6、關鍵詞頻次(關鍵詞的位置遠比關鍵詞的密度重要)
tdk的位置
Html前段頁面的位置
H標簽 > 加粗、> 超鏈接 > 純文本
7、非作弊
關鍵詞堆砌:標簽關鍵詞堆砌 內容關鍵詞堆砌
惡意點擊:不安全的點擊系統,容易造成網站被百度懲罰。
鏈接作弊:發垃圾外鏈 買外鏈
什么是垃圾外鏈:一個網站大量的新聞頁面,百度檢測到時同一個IP
惡意廣告:彈窗廣告、下載信息不正確,頁面電話展示太多(一個頁面留的聯系方式太多,百度會認為這是廣告的形式)
注意:交換友情鏈接加分周期是3個月左右,才可以在重新換一批鏈接
九、總結:診斷網站的15個小細節
1、標題規范
不堆砌關鍵詞、出現違規詞
2、描述規范
描述在60個字以內,標題里的關鍵詞出現4詞左右
3、內容質量檢測(原創度)
優質的原創內容所在網站的比例,比例越高,排名越容易獲得
4、內容排版檢測(瀏覽體驗)
字體工整、圖文并茂
5、內容豐富度檢測
頁面內容字數多,并且內容價值高(非常清晰的吧當前內容話題講述明白)
6、網頁廣告檢測
無任何彈窗廣告,不影響用戶體驗
7、外部鏈接質量檢測(鏈接質量)
外聯的質量,看交換的網站是否導出的鏈接過多、網站是否降權
8、網頁速度檢測
網頁打開速度在1.5秒以內會有百度加分,移動端也是
9、URL規范檢測
盡量無中文,不利于搜索引擎識別
URL層級最好控制在3層左右
靜態鏈接比動態鏈接好抓取,動態鏈接可改為偽靜態鏈接
10、頁面抓取檢測
網頁打開正常,并不一定百度蜘蛛也能正常打開,去百度平臺看下。
網頁打不開的因素:服務器配合低,或者服務器不穩定
11、網站安全檢測
通過百度網站安全檢測功能去檢測即可
12、死鏈接檢測
是否有打不開的頁面鏈接,有的話七百度平臺提交下
13、惡意點擊檢測
突然性的高流量,會引起百度的關注,如果被百度發現作弊,會引起降權
14、網站收錄檢測(索引)
去統計網站所有頁面收錄的比例,把沒收錄的文章去百度提交下,做下錨文本鏈接,首頁展示下,爭取收錄
15、網站排名分析
統計每段時間的排名變化,并分析原因做了那些操作,不斷去完善他
文章來源:飛羽優化
藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務
首先我們要知道APP的啟動頁和閃屏不是一個東西,啟動頁是用戶打開產品第一眼看到的頁面,閃屏是啟動頁之后出現的頁面。
啟動頁是一個APP必不可少的頁面,在iOS規范中,上架AppStore必須有啟動頁,Android系統會有1-2s的白屏,所以兩個端都需要啟動頁。蘋果官方給的解釋是,為了增加APP啟動時的用戶體驗,確實如此,當打開一個產品時,首頁內容都需要一定的時間加載。
啟動頁的設計角度一般是品牌信息傳遞,建立用戶與產品的認知,一般時常都在2s以內(看網速和手機性能)。啟動頁的設計一般不做動畫效果,因為只要是動畫,就會讓用戶感覺等待時間變長了。
閃屏是啟動頁后面緊接著出現的頁面,當然有很多產品沒有閃屏,如微信、淘寶等,因為產品的定位和運營模式不同。閃屏與啟動頁不同,閃屏是用來運營的,比如投放日常廣告、活動運營、節日等等,大多數產品閃屏出現的時間是3s或5s,一般都提供“跳過”按鈕。
閃屏的設計為了運營,所以可以適當有動畫效果或者視頻,目的是能夠更加吸引用戶,加深印象或是提高點擊率。
啟動頁是寫在安裝包里面的程序,如果更換就得發版,閃屏的程序設計是從后臺配置完成,所以可以滿足日常更換。
對用戶來講啟動頁和閃屏展示的時間越短越好,那時間減少不了,就可以通過設計讓用戶對時間的感知變少,從而提高體驗。看下圖,兩張圖通過平滑過度,給用戶的感覺是一張圖在變化,這樣時間上給用戶的感知是變快的。
用戶等待感知短
當然對于不同的產品,設計的傾向性是不一樣的,比如網易云音樂,啟動頁是強烈的紅色,然后生硬的切換到一個跟啟動頁沒有任何視覺關聯的閃屏。這樣的設計形式,用戶等完一個頁面,又等一個頁面,那就會給用戶在時間上的感知是變長的。
品牌感知傳遞強
但是,對于一個音樂產品,渲染產品調性傳遞品牌,要遠遠大于減少用戶等待時間的體驗。所以,從這點來看,網易云音樂這樣的設計形式,也是非常恰當的,設計應該根據產品的定位,來確定設計的傾向性。
敲黑板,劃重點! 下面的內容才是本文重點!
手機尺寸那么多,閃屏設計尺寸應該如何定義,很多APP的解決方案是使用兩張不同比例的閃屏,還有一部分APP是區分系統,iOS適配一張圖,Android適配一張圖。
下面我以小米商城閃屏的改版為例,分享如何用一張閃屏尺寸適配所有機型,并詳細介紹適配的原理。下圖是改版前的閃屏,需要上傳兩張圖,一張1080*2070(不帶底部logo),另一張是720*1280(帶底部logo)。
老版本閃屏需要上傳兩個尺寸圖
兩張圖,設計人員就需在兩個模版上進行排版設計,小米商城閃屏更換頻率非常高,這樣其實會付出很多時間成本。所以,我們團隊嘗試使用一張圖適配所有機型,這其中的難點就是,找到一個合適的尺寸適配所有手機,并且閃屏內容的呈現在任意手機上都得合適,內容不能被裁剪。
先跟大家普及一下小米公司APP的設計稿尺寸,因為小米手機是Android系統,所以UI設計稿會優先適配安卓的主流手機,即1080*2340,這個尺寸接近iPhone12的比例和尺寸,切圖相當于3倍圖。
所以,閃屏寬度設定一定是1080px,然后高度分為兩部分組成,一個是內容運營區(閃屏內容設計區域),一個是logo位,如下圖所示。
藍色部分為閃屏
logo位部分由開發寫到程序中,所以閃屏頁面高度要去掉logo位高度。閃屏設計尺寸即是藍色部分,正常來看應該是主流長屏分辨率手機與現存短屏分辨率手機的平均數即可,但其實并不可取。
因為,短屏分辨率手機畢竟使用人群是少數,設計的宗旨一向都是優先考慮大多數用戶。所以,定義閃屏尺寸的原則是讓類似小米11、iPhone12等主流比例手機呈現的完美,短屏分辨率手機如iPhone8只要呈現的不出錯即可。
以安卓主流分辨率1080*2340為例(這個比例接近iPhone12),如下圖,logo位高度設定為270px,把這個圖切給開發,讓開發等比縮放去適配所有手機即可。
很多安卓手機底部會有一個系統高度,這個位置不可以占用,但開發可以改變顏色,所以這部分顏色可以跟啟動頁或閃屏顏色調成一致。頁面分辨率2340減去270的logo位就是2070,這就是長屏主流手機閃屏大概要呈現的高度,然后需要用這個尺寸去兼顧短屏分辨率手機。
把短屏手機也計算出來,安卓最短的手機比例是16:9(比例等同于iOS的iPhone8),以1080*1920為例,如下圖,1920同樣是減去logo位的270像素等于1650。
接下來就是最關鍵的時刻,要用1080*2070和1080*1650兩個尺寸設定閃屏的設計模版。先說一下手機的適配原理,如果一個張圖片的比例和手機屏幕不一致,開發設定是撐滿手機屏幕,這時手機上展示的圖片就會出現上下或左右被裁剪的情況。
所以,綜合兩個不同比例的尺寸,短屏手機裁剪上下,長屏手機裁剪左右,然后把呈現的內容保證在不被裁剪掉的區域。
閃屏模版尺寸設定嘗試
最后經過很多次的嘗試,最終選用1080*1920作為閃屏的設計尺寸,向上向下適配內容的呈現都非常合適。下圖是iOS和安卓手機的適配效果,向下適配16:9的手機(裁剪上下),向上適配20:9的手機(裁剪左右)。
長短屏手機閃屏適配效果
定制閃屏設計模版
模版中頁面上方留了較大面積,是為了讓標題內容能夠呈現在長屏手機更恰當的位置上,長屏手機內容靠上,看上去不會很舒適。底部空間留的較少,因為底部再加上logo位的高度,就會讓頁面看起來很協調。
最終小米商城的閃屏就是用一個尺寸適配了所有分辨率的手機,思路和適配原理都已經講清楚,如果自家的產品是優先滿足iOS手機,完全可以用上面介紹的方法嘗試。
敲黑板! 下面內容可能會顛覆你對UI設計的認知!
閃屏尺寸說完了,閃屏上面還有一個“跳過”按鈕,這個按鈕的位置設計非常非常重要,而且大有學問,會牽扯到廣告學,按鈕合理的設計會讓一個產品的收入倍增。
還是以小米商城的閃屏為例,之前的閃屏“跳過”按鈕在頁面右下角,新版我把“跳過”按鈕放到了右上角,為什么?
可以肯定的是,“跳過”按鈕,放在右上角,用戶體驗是不夠好的,右下角用戶操作起來才會更便捷,改為右上角其實就是為了讓用戶少點擊。用戶不去點擊“跳過”按鈕,那閃屏內容曝光的時間就會更長,這符合小米商城自營平臺的定位,自營平臺閃屏展示都是自己平臺的內容。
有很多產品閃屏的“跳過”按鈕,放在右下角,如微博、網易云音樂,優先滿足用戶體驗,是因為廣告的性質不同。
“跳過”按鈕在右下角的產品
在廣告學中有這樣幾個詞:CPS、CPC、CPM、CPT。
了解完常見的幾種廣告推廣方式后,我們再看一下微博和網易云音樂兩款產品。他們的廣告如果是CPM(曝光量)和CPT(包時間)的推廣方式,那“跳過”按鈕放到右下角可以提升用戶體驗,還不會影響推廣的收入。
再來看一下脈脈和花瓣兩個產品,他們的推廣方式大概率是按CPC(點擊率)或CPS(轉化率)收費的。閃屏的“跳過”按鈕放在右上角,內容的設計形式上強調并引導用戶去點擊廣告。
“跳過”按鈕在右上角的產品
聊一下脈脈和花瓣的閃屏設計,脈脈把閃屏設計成彈窗的形式,用一種騙的形式,引導用戶點擊假彈窗的“知道了”或關閉圖標。用戶的點擊行為與心里目標完全不一樣,這樣的設計雖然能讓平臺獲得更多的廣告收入,但也損害了用戶對平臺的好感。
花瓣閃屏的設計較為友好,實實在在的告訴用戶這是廣告,你有興趣就點“去看看”去了解,沒興趣就等一等,或點擊“跳過”。花瓣這種設計形式較為適合CPS(轉化率)的推廣放過,因為點擊了解的用戶,都是對廣告興趣的精準人群。
最后總結一下文章的內容,啟動頁和閃屏是兩個東西,通過設計可以讓用戶等待的時間感知更快,從而提高體驗。閃屏可以用一張圖適配所有大中小手機,閃屏的“跳過”按鈕大有學問,合適的設計可以讓平臺的收入倍增。
設計從來都是用來滿足商業目的的,一個小小的按鈕設計,都會很大影響到平臺的收入,所以UI設計任何時候都需要清楚的了解產品定位以及商業模式,這樣才能有效的產出設計。
文章來源:人人都是產品經理 作者:吳星辰
藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務
藍藍設計的小編 http://www.syprn.cn