作為一個不喜歡寫樣式的前端,遇到了直接對外的活動頁面的需求,一下炸出一堆問題:
1.1 padding
看到百度的頂部,你會想到什么方案呢?
我們看百度搜索的頂部,頂部的head(搜索框這一行都是)是fixed的,緊接著的那個div是一個tab。當然fixed脫離文本流,就用padding把自己的主要內容頂到下面去,不然內容就直接置頂了。
沒錯,就是很簡單的一個css,實現的方法有很多。然后我們再看一下這個視覺效果要怎么實現:
img+脫離文本流的方法?雙div+定位?
其實,一個div+padding馬上解決,div背景100%然后center+padding-top,div里面的文字就自然到下面去了,然后定位定準就好了。另外,文字換成偽元素也可以。
控制寬高比
一些人也知道,padding的百分比相對于width,那么這樣就可以實現了一個等比例的盒子,然后隨便縮放都可以了。比如做一個正方形,邊長是屏幕寬度一半:
.scale50 { background: #aaa; width: 50%; height: 0; text-align: center; padding-top: 50%; }
很多時候,我們需要什么4:3,16:9的圖片,就可以用這樣的方法解決了。
1.2 margin
再看看百度的右邊欄
對于這個欄的左邊部分,用margin還是padding呢?這個情況當然是padding,因為有一個邊線。對于這個欄的上面,是padding還是margin呢?實際上,在這個情況下都是一樣的,但是有一個潛在問題:如果有兩行,而且垂直方向還有其他盒子的margin,那么就會發生垂直方向的margin坍塌(取較大值);或者當有父盒子包裹,他的margin會走到外面影響外面。這時候,又要加上轉化為bfc的代碼。
還敢亂來居中嗎
比如,有一個設計稿是這樣的:
可能看起來是居中,然后很快寫出來子絕父相的萬金油居中。然后設計突然走過來說,怎么總是感覺有點不對啊,于是看一下下半部分:
真的不是居中啊,水平方向的也是。那么,這時候,寫死margin不就搞定了,保證視覺不來找你。
...許多天后,測試說,某某手機視覺就出問題了。當然,寫死px肯定藥丸啊,所以移動端就是要用rem解決。我這里一個rem等于50px,那換算一下,圖上第一個div(綠色的鉤)的margin就是176 148 0 151,換成rem是3.52 2.96 0 3.02,后面的樣式問題只要不是橫屏或者ipad的(無視覺稿的前提)都不是你的鍋了。
負的margin
正的就是撐開整個margin-box,那負的我們就可以想象出來,吃掉這個margin-box。一般的情況下,就是平移。如果加上了float就神奇了,還能跨行平移。雙飛翼和圣杯布局其中一部分就是利用這個原理
前面都是廢話,不就是一個盒子模型嘛。沒錯,盒子模型,誰都知道,但是用起來誰用的好,這就難說了
接下來,準備用n種方法實現三列布局,中間自適應,兩邊固定寬度
絕對定位
html:
<div class="container"> //前端全棧架構群 <div class="m">中間</div>//866109386 <div class="l">左邊</div>//歡迎大家進來交流吹水 <div class="r">右邊</div> </div>
css:
.container{ position: relative; height: 100px; } .l, .m, .r { height: 100px; position: absolute; } .l { background: #f00; width: 100px; } .m { background: #0f0; width: calc(100% - 150px); margin: 0 50px 0 100px; } .r { background: #00f; width: 50px; right: 0; }
分析:不論順序,流式布局,中間先加載,但用了calc
"calc?! 避免recalculate啊"
這時候,去吧,ie盒模型:
.m { background: #0f0; width: 100%; box-sizing: border-box; padding: 0 50px 0 100px; }
看一下對比:
圣杯與雙飛翼布局
還是一樣的html
.container { height: 100px; width: 100%; padding: 0 50px 0 100px; } .m, .l, .r { height: 100px; float:left; } .m { background: #f00; width: 100%; } .l { background: #0f0;//前端全棧架構群 width: 100px;// 866109386 margin-left: -100%;//歡迎大家進來交流吹水 position: relative; left: -100px; } .r { background: #00f; width: 50px; margin-right: -50px; }
很多人說這個難懂,其實我們可以一步步來:先放好容器設好寬高背景,三個div是mlr順序。然后float,顯然m自己占一行,其他兩個占一行。
接著,用到負margin,先把左邊到移動一行,即是-100%,右邊就移動一個身位-50px就ok,現在已經是視覺上的3列。最后,中間部分開頭被遮住,而且占了100%行寬。那么我們只能用容器的padding或者自己的margin壓自己。
如果是用容器padding,將左右兩邊騰出來,剛剛好放下lr兩個div。最后,l和r還是在m里面,所以還要移一下,relative就好。這就是圣杯布局
如果是用自己的margin壓自己,那么就需要多一個div包住自己。前面步驟一樣,包住自己的div占滿一行,但是自身有margin,完美解決。這就是雙飛翼布局。圖示和上圖基本一模一樣,只是最外那層不是container而是m,真正的展示出來的中間部分是m里面的div,另外,l和r也不用relative了。
<div class="m"> <div class="margin-setting"> 中間 </div> </div>
這是傳統css+div的一套比較好的解決方案,不過我們愁的是高的問題了,需要自己設
float+calc
<div class="container"> <div class="l">左邊</div> <div class="m">這是中間內容</div> <div class="r">右邊</div> </div>
這次的html不能調換順序寫了
.container { height: 100px; width: 100%; } .m, .l, .r { height: 100px; float: left; } .m { background: #f00; width: calc(100% - 150px); } .l { background: #0f0; width: 100px; } .r { background: #00f; width: 50px; }
類似于前面的absolute方案,calc可以用ie盒子替代
行內元素
是不是遇到過行內元素總是有間隔的問題,html加注釋就可以去掉分隔符,當然這里要實現3列布局:
<div class="l">左邊</div><!-- --><div class="m">中間</div><!-- --><div class="r">右邊</div>
css:
.l, .m, .r { height: 100px; display: inline-block; } .l { background: #f00; width: 50px; } .m { background: #0f0; width: calc(100% - 150px); } .r { background: #00f; width: 100px; }
特點:樣式及其脆弱,內容換行馬上崩了,只能在沒文字的情況好一點。calc還是一樣的方法,ie盒子完美解決
兩個div實現三列
<div class="container" l="左邊">中間</div> <div class="r">右邊</div>
左邊的內容用attr抓
.container { float: left; height: 100px; background: #f00; } .container::before { content: attr(l); display: block; width: 100px; float: left; height: 100px; background: #0f0; } .r { height: 100px; width: 50px; float: left; background: #00f; margin-right: -100%; }
用content做的內容,注定了左邊不能再放html元素了
flex與grid
html還是按順序:
<div class="container"> <div class="l">左邊</div> <div class="m">這是中間內容 </div> <div class="r">右邊</div> </div>
大家都知道的flex實現:
.container { display: flex; height: 100px; } .l { background: #f00; min-width: 100px; } .m { background: #0f0; } .r { background: #00f; min-width: 50px; }
不過,我更看好grid,符合程序員思維,一個配置,兩行代碼,基本搞定大部分場景
.container { display: grid; grid-template-columns: 100px auto 50px; grid-template-rows: 100px; } .container div:nth-of-type(1) { background: #f00; } .container div:nth-of-type(2) { background: #0f0; } .container div:nth-of-type(3) { background: #00f; }
一個div實現
css:
div { background: #f00; height: 100px; margin: 0 50px 0 100px; position: relative; } div::before { content: '左邊'; display: block; background: #0f0; height: 100px; width: 100px; position: absolute; left: -100px; } div::after { content: '右邊'; display: block; background: #00f; height: 100px; width: 50px; position: absolute; right: -50px; top: 0; }
當然,只是娛樂而已,項目上誰會寫這個。某些小裝飾可能有機會上
又瞎搞一堆亂七八糟的,先冷靜一下
出處:https://blog.csdn.net/q3254421/article/details/83153831
輯導讀:互聯網流量,是很多企業趨之若鶩的對象。從免費流量到付費流量,從公域流量到私域流量,隨著互聯網的發展,流量的概念也隨之改變。本文作者圍繞互聯網流量分享了自己的一點看法,希望對你有幫助。
這是一篇現場實錄,主要分享互聯網流量相關的概念以及付費流量與免費流量的玩法,口述內容冗長請見諒。
今天給大家分享一下付費流量與免費流量,主要是整體講一下流量本身是個什么東西,通過這一次分享讓大家對流量有個整體的,比較全面的把握。
首先,大家覺得什么是流量?有人回答一下。對,移動上網流量,水流氣流,那個也是流量。
我們先看流量的定義,剛才說的水流氣流,如果在物理里邊就單位時間流過的體積或者質量,這些都叫流量。還有上網流量也是,上網流量就是單位時間流過的比特,它其實就是特定的時間,特定的人/事或者行為,或者是你要衡量的某個變量。
往玄一點說就是一種時空關系,其實我們關注的流量是網上的流量,它背后都是人,網上的流量背后都是由人來觸發的。所以我們要關注流量,就要關注這幾個 問題。首先訪問流量的主體是誰?然后它有什么特征?他們的需求是什么?他們的訪問時間在什么時候?訪問的訪問頻率,訪問時長,在哪里訪問的?什么樣的環境,然后他們是通過什么設備,怎么訪問的,線上還是線下?然后他們是怎么被吸引的,如何接觸到他們信息如何曝光的?
所以,要理解流量。首先要理解人,流量本身就是人與人的連接,它是一個關系鏈的產物。那人性基本上是永遠不變的,有些變化,但不多。所以說,洞察人性才是營銷的核心,這個就是基本的定義部分。
那么流量怎么分類呢?其實有很多概念,互聯網對不起的概念,這些概念大家也不用太去糾結細節,它都能從某一個方面反映流量的一些特質。
比如說如果按入口區分,那有線上流量線下流量,還有社群的入口,內容平臺的入口,如果是線上流量,剛才說的通信互聯網產品這個都是有流量,我們主要關注大家都聽過的 PV/UV 還有最近的張小龍提的 VV,這些用戶行為數據。通過各類的統計平臺統計。還有我們做的埋點,這些東西,線下流量就是酒店商超 KTV 這些,你們平時逛街滿大街晃悠的時候,都是流量。這個時候店面就會關注一些日均的人流量、到訪量等。
怎么統計的?
比如說,如果你想開個店,一般的做法就是先蹲在商圈某個店鋪的門口,或者是找一個椅子坐在那兒,拿個小本本在那記,看這個鋪一天到底能來多少人,有多少人是拿著東西走的。
這個就是線下統計?,F在也有一些智能攝像頭的識別,能數人頭數,但人群標簽是沒有的,除非再加上人臉識別還有一些大數據才能知道這些人到底是什么,不然就只是數人頭數。具體這些人是做什么的也不知道。
如果按成本區分,就是今天要展開講的,付費流量和免費流量。付費流量,就是花錢的流量。主要就是關關注 ROI 的部分,到底你的投入產出比是怎么樣的?怎么樣把這個錢花得更好?精準引流主要在做這方面的事,就是研究怎么樣去更好的花錢,不是缺錢,就是錢怎么花更值得。
第二個就是免費流量,我們關注就是怎么樣能獲得更多的免費流量,還有免費流量是不是真的免費?它有很多潛在的成本,還有一些其他的比如說按相關性區分,就是精準流量和泛流量。如果我們不知道是什么,滿大街逛的這些車來車往這些都可以算是泛流量,你也不能從上面賺到錢。
精準流量就是你明確的知道這些人是什么人,你能在他上面找到商機能去變現的這些我們叫做精準流量。還有按主動被動,有主動的流量和被動流量,就像賺錢一樣,有主動收入和被動收入,主動流量就是你要主動去想辦法去獲取的被總流量。你在這什么也不做,他也會來的。
按影響范圍,有公域流量和私域流量的區分,也是這幾年比較火的。然后還有一個叫商域流量,其實就是在公域流量里邊的付費的部分。這里跟付費流量其實是有點重合的。最近比較火的就是私域流量后面也會講一講,按平臺派別分,百度系、阿里系、騰訊系、頭條系這些概念就不說了。
首先,付費流量中的傳統媒體大家都知道,一些媒體廣告,還有像美的,年年都在做的「美的集團向全國人向全球華人拜年」。這個是每年都在做的媒體廣告這種。你的受眾是多少人,或者是有什么效果,你是不知道的。而且是這種效果一年比一年差。因為以前的媒體相對比較單一,大家基本都會看電視。
現在有很多像 B 站春晚,像天貓春晚之類的,還有很多網絡春晚。真正看央視春晚的人就會少很多。還有戶外廣告,大家在街上或者是任何線下場所看到的各種廣告都算。還有報紙雜志。刷墻最近又火了起來,渠道下沉嘛,就是在各種村里縣里去刷墻,跟每家去給一點錢,就可以把他的墻刷一下,他可能還覺得刷完了更好看一點。本來是一個破得不要不要的墻。
線下活動的運營推廣,以前經常有這種線下敲鑼打鼓的,然后扭秧歌或者找一些歌舞隊,找一些小的樂隊來搞活動,這種都是吸引流量的一些手段。
它的特點就是主要側重在品牌曝光,就是你如果非常有錢,你的品牌非常有錢,你就去做品牌,你不在乎到底能有多大效果,只要品牌得到曝光就可以。
它不精準不可追溯,效果也不可查,除非是那種像線下活動的時候,現場賣貨?,F場賣多少,那一天或者是多少個城市同時舉辦這種活動,一天能賣多少,這個是有數的。但具體什么人買了這些,之前都是不可知的。
互聯網廣告。首先就是搜索競價,所有的搜索引擎都有這種服務,就是競價排名,但是表現形式可能不一樣。比如說,百度就是百度營銷里可以進行這種競價的排名,針對某一個關鍵詞花錢買,花錢買完以后,在某個人搜索這種關鍵詞的時候,它可能是全匹配,可能是半匹配的。這時候就會按照你的出價順序,展示你的排名。比如說你出了 10 塊,有人出了 20,那可能他就在你的前面。這個展示是要收錢的,如果有人點了,比如說關鍵詞有兩塊錢,你展示了以后又被人點了一次,你就要付兩塊錢給百度。
搜索引擎的營銷 SEM 和 ASO 后面也會再講。Google 就是 AdWords。品牌專區,比如百度品牌專區,我們之前的商城都是有買的。這個是很貴的,可能一年幾百萬起這樣。你在搜索跟這個品牌相關的關鍵詞的時候,會有大概 1/3 屏幕來展示這個品牌的形象,還有一些快捷入口。淘寶直通車,就是淘寶站內的類似的平臺。可以有首頁的入口,還有一些各個頻道頁活動頁的入口。
內容植入,比如說大家看電視劇有很多廣告,有的時候植入得很生硬。比如說經常能見到一個 999 那個藥匣子,誰家都有。視頻貼片廣告大家都看了很多了,尤其是免費的時候,你前面就要過一個 30 秒,甚至有的七八十秒。還有更惡心的 「VIP 推薦」,你明明是買的是 VIP,然后給你一個 VIP 推薦劇集,或者 VIP 推薦綜藝,其實都是廣告。
下一個就是信息流廣告。信息流廣告有幾個比較大的平臺,比如頭條有一個叫巨量引擎,還有一個叫穿山甲的平臺。騰訊就是廣點通,百度有一個叫百青藤,還有抖音的 dou+。這些都是在它的信息流中植入廣告,你可能刷著刷著,忽然就出來一個廣告,然后可能很小的字告訴你這個是廣告。你看頭條文章也是,往好了說是一種沉浸式的體驗,就是讓你看不出來是廣告,他的樣子長得跟普通的文章和信息是一樣的。但在左下角有一個很小的字告訴你這個是廣告,因為這是廣告法規定的,必須這樣寫。
這個就是沉浸式的看廣告。
平臺廣告歷史比較悠久了,比如說一些垂直站點的廣告,貓貓狗狗寵物這些,你就可以直接去賣狗糧。然后門戶網站廣告,像之前的搜狐、新浪、網易這些,你都是比如說賣一個 banner 位,每天多少錢,一個月多少錢。
短視頻平臺就不說了,游戲廣告游戲里面植入的也很多,大家做小游戲、做小程序里面都看到了開屏廣告,還有一些帶激勵的廣告。小程序買量,在前幾年小程序比較火的時候,有很多這種買量互相互相買,比如說我買你一個小程序的跳轉入口這樣。
軟文廣告和種草網站,典型代表就是小紅書和什么值得買這種。社交渠道,有 KOL/KOC 的推薦,微商,這些都是社交渠道的。社群營銷也有很多,還有裂變病毒營銷,朋友圈的營銷。
流量互換,屬于 B to B 的渠道了。像友情鏈接這些都是很早的,很原始的,它以前交換一個鏈接,大家感覺流量差不多就交換一下。現在其實是可以追蹤的。你可以把鏈接單獨加個參數,你能知道你交換這個鏈接能給你帶來多少流量,他都是什么人,你在百度統計里邊去看一下來源就可以了。
公眾號互推這個也算一種,幾個差不多差不多量級的公眾號互相推,大家也經常看到公眾號里邊時長出現推薦一些「不得不關注」的,或者是什么「優秀的人都關注的」。品牌聯合就是兩個品牌在一起搞活動或者搞一個什么事情。品牌跨界其實就是兩個不同行業的或者是跨度比較大的,合在一起搞事情。
郵件營銷現在在國內用的比較少,但國外還是很流行的,因為外國人有看郵箱看郵件的習慣。這種習慣比國人好。其實郵件營銷還是很有效的。有很多小的商業剛剛起步的時候,就靠一個基本的郵件列表,維護那么一兩千人或者是幾百人,就能把業務跑起來了,所以也是值得重視的。
其他還有一些咸魚轉這些其實都可以打廣告,還有很多專門做咸魚引流的,怎么把咸魚的用戶引到我的商城來,或者是如何在咸魚上面成交,咸魚上面真正賣自己閑置東西的人已經越來越少了,很多都是專門去做的,找個貨源以后立馬拿到咸魚去賣。
下一個就是問答平臺,這些知乎什么、 58同城信息平臺之類。早期有一些免費發信息的,很多人在里面人肉發,比如說我有一個什么網站,或者是我有什么生意,比如說收廢品,我就去個信息平臺發,留手機號。還有社區論壇,百度知道貼吧這些東西,在這個里邊還有一個生意,就是流量中介。流量本身也是可以作為商品存在的,只要是從源頭到你的終端用戶中間是有差價,這個生意就可以做。
比如說你在一些大平臺你可以你可以采購比較便宜的流量,但是終端用戶不一定能直接買。首先是可能有門檻,比如說他一定要達到多少錢,比如說一定要一個月100 萬我才能賣給你,就可以做分發。還有一種可能是你的終端用戶根本不知道有這個渠道,你可以去做發現商機和教育的事情。
這個行業也是有很多中間商存在的。比如說你去頭條去投放,很多時候中間是要隔著代理商的,他們都是通過地區代理商,或者是某個架構上面分層的代理商來對接的。很少會直接去跟平臺去對接,平臺自己也沒有辦法去維護這么多的人力,他也沒有精力。像微信的認證都是代理商來做的,300 塊錢一次。
總結一下,互聯網廣告的特點就是精準引流,效果可追溯,數據驅動。有一本書叫《增長黑客》,主要就是講靠數據驅動來獲得增長,然后持續優化。
這里邊還有一個問題就是流量欺詐,是這個行業歷史非常悠久的問題。早期這種是非常明顯的在廣告行業?;旧虾艽蟮牧髁慷际羌俚?。比如說,做技術的可能知道,你在頁面上如果 PV 不做去重的話,那刷一次就是個 PV 這種哪怕我用人來點都也可以。
再往前追溯,比如說到 2003 到 2005 年,那段時間有很多廣告聯盟,國外的也很多。還有一些兼職點廣告的。兼職點廣告做的是什么事?你打開一個頁面上滿屏都是廣告,你就一個一個點,點開以后放在那也不用看,過一會等它播放完了你關掉就可以了。
這種是層層分傭下來的,中間可能有 10 層或者是幾十層上百層都有可能。一層一層往下轉發,到最后可能一個人點個廣告幾分錢,都有人做。只要是有利可圖就有人做。然后還可以用機器來點。早期的廣告行業數據基本上都是這樣來的?,F在技術越來越發達,我們也會做很多去重,或者是羊毛的識別,就能識別出一部分,但多少還是會存在的。
作弊難度是有一定層級的,比如剛才說的展現量點擊量這些都很好作弊,然后你要說留咨量,可能就難一點。你起碼要留一個差不多的手機號,哪怕是打不通,造個手機號也可以,還要造一些看起來像是真實的數據。潛在的客戶量,訂單量,這種就更難了。下單量是可以造,但是到了成交基本上已經不是造的問題,錢都給我了,你愿意怎么造怎么造,反正我收到錢就可以了。
還有很多剛才提到的可能有機器刷量和一些僵尸僵尸號。貓池,不知道大家聽沒聽說過?很多大批量的手機卡放在一起,這樣的設備可以把一批手機號集中在一起,然后對外使用者像用真實的手機一樣,去發短信收短信。甚至有的可以接電話,手機打碼平臺,可以直接通過 API 的方式接入,每次隨機給我一個號,然后我去某個平臺自動注冊,注冊完之后這個號再通過接口把驗證碼返回給我,我就可以注冊成功了。
至于這個號后面會做什么我完全不管。臨時的活動,我就通過這種平臺去搞一下,搞個用戶,然后搞積分,如果是積分可以轉移那就更好了,如果不能轉移那就積分攢到數量立馬兌換掉,兌換券也可以或者買東西也可以。這個薅羊毛的基本操作。
最后一個就是事件營銷,這個就不細講了,這個話題比較大,像之前的「逃離北上廣」這句話主要是新世相搞起來的,也是獲得了很多關注。支付寶錦鯉,這個也是,其實他花不了多少錢,找各個商家過來提供一堆券,然后全國這樣玩一圈,獲得很大的曝光量,最后也沒有多少成本,這就是事件營銷。
這里可以多說一句,事件營銷有好有壞,還有跟風追熱點,也是事件營銷的一部分,如果你貼得好的話,可能就會有比較好的效果。但如果貼不好,可能對品牌是一種損傷,甚至有可能有公關危機。
為什么叫通過內容獲取?這里的內容是廣義的,我們很多東西都可以叫內容,你能看到聽到能感受到的都叫內容。內容的形式主要有這些,一個是文字的,大家看的公眾號文章這些東西,然后圖片、音頻、視頻,比如羅振宇的 60 秒音頻,還有各種音頻課程,這些都是內容。視頻,可能簡單的分就是短視頻、長視頻。短視頻里邊還有一個單獨 vlog,為什么單獨拎出來?它跟一般短視頻還不太一樣,比如說你看抖音快手,一般的短視頻要盡快抓住你的眼球,可能在前 3 秒或者是前 15 秒,如果不能抓住你的興趣,基本上就刷過去了。而 vlog 更傾向于個人生活的記錄,它不需要去卡點,也不需要激動人心,就是你的生活狀態,更有煙火氣一點。
長視頻可能是接下來一兩年內比較火的,我們以前看的電影都可以叫做長視頻,但是短視頻搞了這么久,現在又回歸了。
視頻號里面就可以看到,有過幾次改版,最開始是不支持長視頻,只有一分鐘。后來是支持長視頻,要點一下,現在已經可以做到很自然地去切換到長視頻播放。下一個就是直播,也火了好幾年了,直播從技術上講,它確實是視頻流,但實際上它跟視頻不太一樣,因為它側重在互動這部分。你看普通視頻的時候,除了彈幕,基本上是沒有什么互動的。
下一個是消費場景。為什么說這個也是內容,舉星巴克的例子,星巴克有兩本書,一個是《一切與咖啡無關》,一個是《將心注入》。主要是講星巴克第三空間這個概念,它營造的是除了工作和生活,除了日常的工作和家庭之外的第三空間。讓你在這個空間就有一種放松的感覺,暫時逃離的感覺,就跟中年人回家之前在車里待一會,不上樓是一個樣子。還有他在服務中有很多細節會給你體現這種逼格和優越感。雖然說本身看上去也沒有什么,就 30 多塊錢一杯,但它是會通過很多服務的細節讓你有這種感覺,而且確實有很多人去了以后會有優越感。
所以說,消費的內容應該是用戶得到的綜合價值,付出的可能就是他的付出的綜合成本。
比如說售后維修這種,可能維修本身并不貴,100 塊錢 80 塊錢這樣,但你要去維修的時候,你要搶號,你要排隊,然后你來回交通時間成本,這些其實都是你作為用戶要付出的成本。這個時候就不能考慮你這個東西本身要多少錢。如果想把你的服務做得更好,要考慮用戶在這個消費場景中到底付出了什么。也可能是面子,可能他用這個東西或者服務會覺得丟人,這個也是他付出的成本,那最明顯的就是時間成本了。
內容來源,我們知道內容可以帶來流量,怎么去解決內容來源的問題呢?首先我們最常見的也是最爛大街的就是文字內容和圖片內容,在網上可能 90% 多都是這種文字和圖片的內容,有很多是垃圾內容,比如說你想去建一個網站來堆砌這種內容,來獲得一些流量。那內容到底哪里來呢?
大概就會從下面這些部分,首先是素材,素材網上有很多公開的素材素材庫,比如說一些作文網站,它就會有很多文字內容,作文、詩詞、論文、小說這些都是文字內容。然后比如說 300 字作文,可能我們正常的一篇 SEO 文章 300 字左右就夠了。你把一篇作文改一改,也能作為你的內容。詩詞也是,詩詞混一混翻譯一下,也能作為內容。
還有就是品牌故事,很多品牌有自己的品牌故事。可能是你把幾篇故事拼一拼,合成你自己的故事,或者是你寫你自己的品牌故事,一定會有很多故事。如果真正是一個從零做起的創業公司,哪怕只有一兩年的時間,在你整個過程中也有很多故事可以講,很多時候做品牌其實就是講故事。比如說美的有 50 多年的故事可以講,前面是怎么創業的,中間經歷了什么困難,是怎么度過的,然后有哪些變革,都可以在講故事。還有品牌的產品庫知識庫,你看有些品牌它會有自己的產品庫或者知識庫,還有服務支持,這里面都會有大量的內容存在,都是可以利用的素材。
其實就是,任何的文字內容都可以作為素材,就是怎么獲得的問題。做新媒體的有很多新媒體,新媒體的工具,大家可能也見過一些新媒體工具里邊也會想辦法去幫大家解決這種內容的問題,它會提供一些素材庫,這些素材庫其實也都是網上爬來,或者搜集來的。還有平時的積累,大家平時用印象筆記、微信收藏也會收藏文章。如果你想發展寫作的部分,重點就是平時積累,你覺得好的句子,好的段落都可以積累下來,不定哪天就能用上。也可能是在述職匯報就用上了一句名人名言,或者是你的 PPT 上面用到一些比較好聽的句子。紙質素材庫,一些書籍,紙質作品,這個只是素材庫,怎么用呢?現在有很多工具,比如 OCR 識別這些,手抄就不說了。
朗讀識別,為什么單獨列在這,有的東西你沒有 OCR 識別或者 OCR 不好識別,你可以把它念出來,比如說用微信的語音識別,念出來以后,他就能把你識別成文字,像 iOS 的也有這些朗讀者,其實都可以識別。還有訊飛,專門做這個,硬件設備和 APP 都有。這個時候就可以很方便的把這些紙質內容轉成文本,掃描識別也是,印象筆記這些都可以直接識別。
音視頻識別也是。你如果你本身有一些音頻、視頻的積累,你可以把它轉成文本,這些都是有開放的工具和 API 可以實現的。
視頻的素材庫就不說了,本質上還是搬運,只要不是自己拍,都是搬別人的。但文字不一樣,因為每一個字都沒有版權,就看怎么組合。但是視頻,別人拍的就是別人拍的。
第二個,單獨針對文字部分,首先是人工寫作這幾個概念,PGC / UGC / OGC / PUGC,大家回去自己查,對這些都是內容生產的方式。
首先,你如果做一個內容平臺,比如說我要做一個跟頭條差不多的,做一個頭條新聞,你就要解決這個問題。你要想你的內容到底從哪里來?肯定不能開始就爬了,雖然也有很多平臺開始就是爬,到處爬。如果靠人工寫作的話,到底是由專家來生產,還是由普通用戶來生產,還是你的組織生產,還是你的專業用戶生產,要事先想好,不然的話后面是沒有辦法推進的。
還有個工種叫人工代寫,大家搜一下會有這種人工代寫平臺,大概一篇三五百字的就是 50 塊錢這樣子。這些人工代寫它的用處在哪?就是那種 SEO 文章,靠爬蟲或者是靠機器去拼湊的時候,質量非常差。
人工代寫的作用就是幫你拼一篇,看起來還質量比較高的,或者是基本上看得過去,是說人話的文章。然后就是學生兼職,投稿之類。學生兼職單獨也列了一下,比如找大學生代寫。投稿也算,跟兼職差不多。你找些人寫一些文章,然后你來看,覺得合適就給點錢。這種的特點就是成本比較低,質量也不一定會很差。
像「十點讀書」這種號全都是投稿,在投稿的基礎上,他可以慢慢去找一些專家,再來培育一些寫得比較好的,然后再扶持他們做自己的 IP,再去幫助他們出書之類,這樣的話整個生態就玩起來了。還有就是自己寫,不說了。
下一個就是洗稿和偽原創,剛才前面說那些素材庫的拼接,這些其實都是有洗稿的嫌疑。這些事情其實我們在中學就開始做了,中學你們有沒有買過那種作文素材庫?作文素材庫里面其實都是別人寫過的,你可能為了應付考試,你要背幾段下來,比如說寫人物的背一段,寫風景的背一段對吧?這個其實都是洗稿。
手動洗稿,就是把一些公開的文章,公眾號,論文這些你都可以拿來洗,看洗到什么程度,你也可以把它洗得面目全非,它就是你的文章了。比如大家作論文,做論文怎么做的?你一定是去知網這些搞個幾十篇論文回來,然后前面摘要或者是行業現狀基本上都是抄的,改一改只要識別不出來就可以了。后面可能自己寫的部分占10%~20%,可能還是師兄做的。
然后剛才提過的新媒體工具輔助寫作,會幫助你做智能段落的拼接,還有圖片素材。智能偽原創工具,它是通過自然語言處理的算法,把這個話拼得更自然一點?,F在做得比較好的,會從網上找內容,先用關鍵詞搜索相關的文章,然后自動抓一些段落出來。再自動洗一遍,然后你再來看再來整理?,F在這種工具也很多,對應的就有「原創度檢測」,其實也是洗稿用的。普通人如果自己寫的,沒有必要去做原創度檢測,這跟論文查重差不多,論文查重是跟別的論文去對比。原創度檢測是跟網上已有的,被搜索引擎收錄的文章去對比。它會告訴你這一段的這一詞或者這一段的幾個字,重合的概率是多少?如果都標紅了,就要把它改一改,加個什么的地得之類的,可能就好一點。但是現在都是自然語言處理算法的。這種簡單的加小詞作用不太大。
AI 寫作,有文章生成器。你可以把它理解為一個專家庫,里邊有大量的素材,然后根據你的關鍵字和線索隨便拼湊一下。
還有個叫狗屁不通文章生成器,這個就是找了各種經典著作,什么名著、哲學、天文地理著作全都有,不管你輸入什么都隨便給你一段,跟輸入的內容一點關系都沒有。
然后最后還有一個機器生成,機器生成首先就是爬蟲,既然是機器,素材肯定不能自己去錄入了,一定是爬蟲實現。比如瀏覽器爬蟲,服務端的爬蟲。各有各的特點。瀏覽器爬蟲用起來比較方便,什么頁面都能爬,而且它不存在這些登錄態的問題,因為你在頁面上已經登錄了,就相當于一個自動化操作。
服務端爬蟲就要自己寫了,也有些開源的工具。還有就是采集工具,如果大家玩過的 WordPress 里面就會有很多采集的插件,像火車頭這種。你設定一些規則,它就去全網爬,爬完了以后自動為你發布一篇文章,這個網站就出來了,垃圾站都是這么來的。
還有各種其他的 CMS 系統都有這種插件。還有智能軟文系統,就是在剛才這種插件基礎上,把東西爬回來以后,再去混入你需要的關鍵字。比如說電飯煲,然后爬蟲爬了一堆跟家電相關的,比如紅燒排骨怎么做,鹽焗雞怎么做之類,再把「美的電飯煲」混在內容里面。這些基本上就是爬蟲再加偽原創功能,相當于把前面的幾個功能結合在一起了。
還有爬蟲可以加 OCR,你爬過來的圖片,再用 OCR 識別。比如發票什么這些都是 OCR 的識別。智能寫作,跟剛才的還不太一樣,智能寫作它是另一個概念。現在大家如果買股票基金,你看那些新聞報價,基金股票那些報價,全是自動生成的。它有一個固定的模板,然后固定模板上面會有很多可替換的變量,你比如說今天明天然后漲了跌了,然后建議是買還是建議是賣等等。
這些都是可替換的變量,它在抓到你今天的股票數據之后,再根據這些變量生成一篇文章。文章大同小異,也可以做得差異很大,你可以把每一個字都做成變量,隨機生成以后,可能每個段落每個字都不一樣。那就是兩篇看起來完全不一樣的文章,還可以有 if – else 的條件。
If,出這段,else,出那段,這種是智能寫作,它可以自定義模板和數據源,常用的就是賽事、天氣、股票這些東西,因為這些本身輸出的文章是結構化的。哪個隊,得多少分,哪個股票怎么樣,再混一些新聞和熱點信息之類。
也可以通過這種思路來生成你的文章,你做一個非常強大的,非常智能的模板,然后每天就是隨機生成,隨機一個月都不會重復。隨機一個月就一個月的文章都不重樣了,其中再混入你需要的關鍵字,如果被搜索引擎抓取到的話,并且沒有識別出來你這個是機器寫作的,可能就能很快的提升網站的流量。
智能文章摘要這個也是 NLP 的,百度騰訊都有這種接口,你隨便拿一篇文章過來可以給你自動生成摘要。比如說你寫的論文,可以自動生成一個中文摘要,再加一個百度翻譯,自動翻譯成英文摘要,基本上論文的摘要部分就有了。
雙向翻譯偽原創之前也玩過,因為翻譯這個事,不管是機器翻譯還是人翻譯,都不可能很準,從中文翻譯成英文,就會有一些失真變化。再從英文翻譯回中文,這篇文章就變樣了。幾次雙向翻譯,再人工過一遍,就是另外一篇文章。這也是一個路子。
還有視頻語音的識別,視頻語音識別剛才提過了,這里還可以再說一下。剛才是說,你如果已經有了語音識別語音和視頻的素材,如果沒有,比如我現在想想搞點心靈雞湯,怎么搞?你關注一堆抖音的心靈雞湯號,然后拿一個智能錄音筆放在邊上,他這邊放一遍,你這邊出來一段文字,你再改一改,素材就有了?;蛘吣惆褞讉€人的綜合一下,素材就來了。是不是思路又拓寬了許多?
下面是圖片了。圖片有很多,網上有很多無版權的圖片。之前大家認為網上圖片都是沒有版權的,現在版權意識越來越好了,所以才會出現真正的無版權圖片網站。這些無版權圖片網站是大家自己拍攝的貢獻的,然后一般是 CC0 協議,你可以隨便用,這種國外的網站比較多,國內的一般沒有人愿意搞。
第二個就是圖片搜索,百度 Google 這些都可以,這個時候要注意版權,現在百度的版權意識也提升了,會有很多打了版權標的,你搜出圖片下面會寫這個是有版權的。還有就是拍照,隨便拍。還有剛才說的視頻,單獨截取某一幀,這些都是圖片素材,不過這個也是有版權的。
自動化生成這也是個路子。大家有的時候會看一些傳播比較火的動圖,可能是用 echarts 的這些軟件去生成,我拿了一堆數據,拿一些比如說 10 年股票走勢,10 年比特幣價格走勢,這些可以做一個動畫視頻出來,都是自動生成的內容。爬蟲再加報表的庫來自動生成。
下面就是音視頻,這是人工拍攝的,沒什么好說的,就是拍這里邊拍攝的時候也不是瞎拍,即使你不是專業的,也有網站會提供腳本庫,比如說抖查查,這上面就有專門的拍攝腳本庫。你其實什么都不需要知道,你去照著他的腳本拍就行了。
比如說需要幾個人,需要一個美女,需要一個大爺,需要一條狗,然后你就準備。你把這些找到,然后在什么樣的場景,可能是大街上或者是小區里,誰在哪里,什么機位,該說什么詞,這些都是有公共的素材庫的。也可以臨場發揮一下,比如說大爺突然想到更好的臺詞,狗突然亂叫幾下啥的,這些都是可以臨場發揮的。
還有,模仿現有視頻這些在抖音快手也是非?;鸨?,而且,怎么說呢,是非常有可行性的。對尤其是抖音,尤其頭條系的,為什么?因為頭條系他那個算法是按照你單條的質量,它不在乎你有多少粉。你有 100萬粉絲,第一條上千萬的播放,到下一條就完全沒有人看也是有可能的。所以這個時候,模仿視頻才這么火,你一個大 V 100 萬的粉絲,拍了一個視頻,看起來很不錯,但是由于種種原因,可能分配的池子或者怎么樣,一些隨機算法的原因,沒有火起來。但是被你看到了,你覺得這個創意非常不錯,自己再拍一個一模一樣的,但是由于一些原因,你這個可能就火了,對。
所以說這種模仿怎么說呢,只要你不覺得這個事情有問題,就沒關系。還有就是虛擬形象的軟件,不知道大家看不看視頻號,或者有沒有看到一些,有的人在那說也是他在動,但他的臉被換掉了。這些虛擬形象現在的技術已經很成熟了,可以完全動態識別的臉,甚至換臉都可以。比如川普換臉這種都可以,但需要生成的時間比較長了。但是你說貼個卡通形象,貼片的這種這個已經很成熟了,有很多應用可以做到,蘋果內置的就可以。
你就對著攝像頭去說話做表情,然后你把這段視頻錄屏錄下來以后,就可以做素材了。比如你想開個視頻號,想講一個什么東西,但是你又不想露臉,你就可以拿蘋果的「擬我」表情功能,你就對他一直講。然后最后再 P 個什么背景或者把文字 P 上去,這個課程就有了。
字幕這些也都是,剛才說的語音識別已經都集成到各種 APP 里面了,可以自動識別添加字幕。還有人工搬運其他平臺的視頻,這個也是好多年了,尤其是從油管往回搬的,國內的很多很火的視頻都是油管搬回來的。
對,搬哪都有,搬到 B 站,搬到快手搬到抖音的全都有,反正就是搬。這里也可以提一下,搬運這個思維其實在哪里都可以用。有句話說,任何在一個平臺火的內容,都可以在另外一個平臺再做一遍。你在油管火的,可以在其他平臺再搞一遍。在快手火的在 B 站可以搞一遍,B 站火的也可以再拿到抖音、視頻號去搞一遍。
當然各個平臺它的調性是不一樣的,你要看一下你的內容到底適不適合這個平臺的調性,也可能不適合,不適合的拿過來可能就沒有用。比如頭條系可能就更傾向于新聞和熱點之類的,心靈雞湯你放到頭條新聞里邊可能就沒有用。再比如說一些飲食或者是自殘傾向的這種,可能在快手就比較火。放到視頻號就不一定有用。這些是搬運思想。
扯遠一點,像比特幣當時也是有很多搬運的,比特幣的價格是怎么來的?它其實有很多交易市場,你是看交易市場價格。但是不同的交易市場之間是會有差價的,早期的時候,在各個市場之間搬運也能獲利。股票也是,股票你的高頻交易在人的手沒那么快的時候,通過電腦去查到你買和賣之間微小的利益差,然后快速的去操作,那就能賺到中間微小的利差。
這里說下扮搬運的版權風險。搬運一定是侵權的,是游走在法律邊緣,就是盜版。就看告不告,一告一個準。注明出處也不行。首先大家是做軟件的,一定要熟悉這幾個版權協議,比如說 CC0 ,基本上可以隨便用,但是也是有版權的,不是沒有版權,只是我授權你可以隨便用。還有 MIT, Apache 之類。大家要知道,一切的創作作品都是有版權的,尤其是軟件,還有論文、文章這些都是知識產權,都是 IP。
為什么現在 IP 這個概念這么重要,就是知識產權很值錢,既然值錢,一定要拼死保護。視頻也是,別人拍了一個非常好的課程或者視頻,被你搬走了,并且完全看不出來是他拍的。對別人的利益是有損失的。本來他想借這個好的內容去傳播,去建立影響力,建立品牌,但是被你拿過去,你可能把自己的品牌貼上去,你獲利了。
這個地方有什么好的辦法嗎?首先,這個內容本身就是你品牌的東西你就不怕,比如說我在講美的電飯煲,你隨便盜版,你盜了我也不會告你的。或者是我自己就真人出鏡,你總不能把我的臉換掉吧,其實理論上也是可以的,但成本會很高。
這個問題無論從渠道上還是法律上都是攔不住的,技術上也攔不住。你唯一能做的就是,讓他的盜版成本變高,像搬視頻去水印這種成本就很低。你看視頻號上面很多都是什么名人演講這些,就是直接搬運油管,去水印。就算保留水印,也是侵犯版權的。什么 Ins 精選這種,也是搬別人的,尤其是搬個人的,都是侵權。首先大家一定要清楚這個概念,這些就是盜版,就是侵權。但總有擦邊球,總有一個模糊的邊界,然后大部分時候人家沒有時間告你。沒有作者授權就是侵權。
如果是把某一個平臺的比較好的東西,你本來想隨便搬一下,但它突然火了,真正影響到平臺利益了,那是有可能有法律風險的。大家自己產生的內容也是一樣,你用的軟件,大家可能用盜版都比較習慣了。但假設你自己寫一個作品,自己寫一個軟件,放到應用市場上去賣,但是第二天你就發現有個人發了盜版,你來不來氣?最可怕的是,人家還做了微創新!
在 App Store 里面經常會出現有很多同質的 App,小程序更是,剛發出去以后很快就會有類似的小程序出現,因為小程序可以直接扒源碼。比如「抽獎助手」這種出來以后,然后扒源碼稍微改一改,甚至有人改都不改,直接塞兩個廣告就再發布一遍,這都可以。所以微信才要求必須有軟著嘛。你發的小游戲必須要有軟件著作權證書,即使你是扒的,你能搞到證書也可以,你可以先申請軟著。
這個又扯遠一點了,所謂的版權,其實是一個法律意義上的版權。你說你寫的?不行!你要專利證書,你要有你的著作權證書,要有你的商標品牌,這個才算你真正有版權。所以才會有搶注出現,大家應該聽過商標搶注。專利搶注也是有的,因為專利它的生效范圍是在是在國家范圍內生效生效的。比如說你發現美國人發明了一個新專利,你覺得這個比較好,但是國內沒有,你立馬把它原樣搬過來,在國內申請一個專利。如果先批了,你可能這個專利在國內就算你的,這是有漏洞的。
所以如果覺得這個東西是有商業價值的,都會在各個國家去注冊專利,除非這個國家的專利根本沒有什么價值。所有涉及版權地方,都會涉及到這種搶注搶版權的事情。
機器生成圖文轉視頻接口,這個不知道大家見沒見過,也是一個比較新的。比如說我有一篇文章,然后有一些圖片素材,我可以通過圖片轉視頻接口,讓它快速的生成一個視頻,這有什么用呢?其實是針對不同的平臺,比如我寫了一篇很好的文章,但是我又沒有拍視頻的能力,就可以用這個接口去把它轉成一個視頻放到 B 站放到抖音上面去玩一下。還可以放到視頻號,然后再把它引流回到這篇文章。圖文轉視頻接口都是可以通過 API 來實現的,而且前面講的這些都可以組合,比如說你可以爬蟲爬到以后, OCR 識別,然后就變成你自己的文字了。再利用無版權圖片的 API 去自動抓一些圖片回來,再用圖文轉視頻接口自動生成一個視頻,全程都沒有人工參與,就有了視頻內容。
最后一個,創造消費場景,就不展開了。我也不專業,而且有很多細節可以講。
下一個就是內容生產的邊際成本,本身這個內容行業是有一個相互制約的關系的。首先比如說是你自己來寫,你又想寫的質量很高,又想日更,每天都能發,又想一直堅持,其實很難的。因為人的精力有限。放到公司或者是組織也是一樣的,這幾個都是相互制約的,你要想質量高,可能頻次數量就要降低一點。要想頻率高,質量就不可能太高,除非你一直投入大量資源,找很多人很多厲害的人來寫,對于爬蟲和機器其實也是一樣的,你又想抓的頻次高,又想質量好,你要更好的算法,你要更多的服務器,更多的硬件資源,才能去把它做得更好。
還有相同模式的邊際成本。寫文章也是,如果說今天想個話題,明天突然掉線了,想了一天沒想出來,這個就不具有持續性。假設你找到了一個模式,可以持續的輸出內容,一天寫一篇可以,一天寫 5 篇,你要做什么事情?一天寫 10 篇,你要做什么事情?或者是規模化,同樣模式那種再把它增加幾個數量級,你需要付出什么樣的成本?所有的內容平臺都會涉及這個問題,就是邊際成本的問題,你自己如果做內容的話,就要想,等到規模起來以后,要付出什么樣的成本。
下一個就是內容的傳播,好內容自己會傳播的。然后還有用戶分享的部分,也有營銷的部分了,也可能是被轉載。
還有一個多平臺發布,這個也是經常會用到的。一個內容可以通過工具在不同的平臺發布,比如說寫一篇文章,你可以在在開源中國,在知乎在 CSDN,在在自己的博客,簡書都可以去一次性的發布。
回到剛才說的邊際成本,剛才說的是頻次,就是多平臺的邊際成本,你寫了一篇文章,換到另外一個平臺需要付出什么樣的成本,它并不是直接可以貼過去的,你從本地的 markdown 到知乎也是有成本的。
首先它的 markdown 不一定完全識別,然后圖片直接外鏈也不一定能抓取到,有的時候可能是內網的,有時候可能需要你自己重新傳一下,有的時候是內容不適合。還有被動的傳播,就是你的內容可能會被別人的爬蟲爬取,就是被動傳播。站內推薦也是一種,好的內容,在站內被小編推薦。
下面要說到一個比較大的,SEO 的部分,之前講過,應該大部分同學是聽過的,我就快點過了。大家知道 SEO 就是搜索引擎優化,ASO 就是應用的搜索優化,如果放到蘋果就是 App Store Optimization,然后如果安卓就是 Android Store Optimization。白帽優化,就是我們正常的,比較常規手段的優化,包括站內優化部分,還有一些工具,還有新站 SEO 的基本步驟。
戰內優化的站點地圖,如果是文件,然后站點本身的獨立 IP,顯示速度,同 IP的站點數量,包括你的域名的是不是權威 DNS,域名用了多少年。域名注冊了多少年?域名當前的收錄情況,網站歷史之前是做什么的?有沒有什么黑歷史?有沒有做一些黃賭毒詐騙之類的?通過搜索引擎的 site 命令就可以看到當前收錄情況。也有很多工具可以看到,還有就是 whois 的信息,能不能查到,能查到什么樣的信息。
這個可以給產品同學講一下,所有的域名都有 whois 信息,來表明這個域名是誰注冊的。它服務器在哪里?它的域名服務器是哪個域名服務商提供的。所有域名都有 whois 信息,但不是所有的 whois 信息都可以查到。你注冊域名的時候,可以多花錢隱藏這個信息,別人就查不到。
下一個就是一些 404 頁面的處理,301,50x 處理,還有我們之前做過的偽靜態。網站 URL 的層級,針對 SEO 的文件名。還有 canonical 這個標簽可以說一下。沒有這個標簽之前,很多搜索引擎會收錄大量類似的重復的頁面,可能只有一些微小差別,比如說分類不一樣,或者是商品詳情這些,大部分差不多。
這個標簽的作用就是規范 URL,告訴搜索引擎這些差不多內容的頁面,都有一個規范的 URL。就拿 PHP 舉例,可能有的 URL 多個問號參數,有的可能多了些沒有用的參數,有些可能多了一些哈希值之類的。這個標簽就是告訴搜索引擎,不管我上面的 URL 長什么樣,這個頁面內容它的規范的 URL 就應該是這樣。這個是跟搜索引擎說的。
下一個就是頁面的 TDK,title,description,keywords。這里邊跟 SEO 相關的有,核心關鍵詞設置,還有熱門關鍵詞,長尾關鍵詞。大家可以關注一下這幾個網站,這些做云服務的網站,因為它有技術優勢,它本身就是做技術的,所以它知道 SEO 該怎么玩,就會有一些投機取巧的辦法。
你去阿里云這些去看,去騰訊云華為云這些看,他的幫助中心其實有很多跟他自己的業務一點關系都沒有的關鍵詞,他把所有的關鍵詞都占了,所有跟技術或者是互聯網相關的關鍵詞全都生成一個頁面,你們進去以后,除了關鍵詞有差別,下面就是隨機推薦的內容,這個就會造成大量的垃圾內容,但是會增加收錄的權重。
還有一些通過定位隱藏的 SEO 內容。之前你如果用 css 里面的 display 屬性,有些搜索引擎可以識別的,但如果飄出去飄到屏幕外邊,或者是被其他元素擋住,這種是很難判斷的。它沒有辦法去完全解析你的樣式文件。所以有些 SEO內容你不想讓用戶看到,是可以通過一些辦法隱藏的,這個是技術相關的,非技術的可以了解一下,這些東西都是怎么玩的。
還有收錄的數量,關鍵詞的已經被收錄了多少頁面?他現在排名什么樣,優化難度什么樣,關鍵詞的布局密度,這個跟剛才的內容生產有關,在你生產一篇內容的時候,你就要想好這個里面關鍵詞怎么布局,在頭尾出現多少次,然后一共出現多少次。這樣的話這個文章對 SEO 才能更友好。
這里有一個說法叫「四處一詞」,前面的 TDK 再加尾部或者是錨文本,這里邊都要出現你想優化的關鍵詞,還有網站導航的關鍵詞,上面導航一定是要跟你的業務想做的核心關鍵詞是有關系的,不是有關系,是要包含你的核心關鍵詞才行。
H1,H2 標簽,大家寫代碼的時候會說這個頁面沒有 H1,對搜索引擎是非常不友好的。不管這個頁面是不是文章,它都要有一個 H1 代表頁面的標題,就是一句話點明這個頁面到底是什么內容,是這樣一個作用,并不一定是文章頁。
還有就是語義化的標簽,跟前端相關的就是標簽本身的語義化。你到底是用了一個 P 段落,還是隨便用的 DIV 和 SPAN,這些沒有意義的標簽。
下一個就是內鏈建設,這個有點像設計一個迷宮,最好讓搜索引擎的爬蟲(搜索引擎也是爬蟲,搜索引擎收錄的時候其實也是按你的站點地圖和頁面來爬)最好讓它進來以后,就一直在那里邊出不去。就是讓搜索引擎的蜘蛛在你的網站里面多留一會兒,但是最好不要出現死循環。如果死循環就不太友好,還有死鏈,它走一走,走到死胡同,回不去了。內容部分剛才講了很多了,這里面說到內容的總量,頁面總量,就是你到底被搜索引擎收錄了多少頁面?幾百個,幾千個,還是幾十萬。
還有更新頻率,蜘蛛會定期來一次,多久來一次你不知道,你的網站越活躍,它來的越頻繁,然后但更新頻率也不要太頻繁,如果太頻繁就不太自然,顯然是一個。除非你是一個非常大的網站,真的從一開始有很多人給你貢獻內容,這個其實是不太現實的。你就算去招人,你去招募作者,也是需要有時間的。
這里面還有一個點,就是你新建站點的時候,不用太快去提交搜索引擎,因為這個時候你沒什么內容,你給搜索引擎看了,他第一次來,第一印象就覺得你這個網站可能沒什么東西了。第二次來的時候如果還沒有什么變化,基本上就認定你這個是沒有什么變化。這里還可以多提一句,搜索引擎流量池,并不是說你一旦被搜索引擎收錄了,就一定會被搜到。它是有兩個層級的,有個底層流量池,還有上層的流量池。
在你自己提交的或者是只收錄了幾個頁面,這種可能就是在底層的流量池,這個絕大部分時候你是不會出現的。就算這個關鍵字跟你相關,可能排到 100 頁以后,別人根本看不到你。只有通過各種優化去進到頂層的流量池才有意義。
下面就是原創度,剛才說到了。有自己直接寫的拼湊的,有機器生成的。不管你怎么搞的,最后都是要注意原創度,你可以通過原創度檢測工具,來看一下這個東西到底搜索引擎認為你是不是原創。是不是你自己寫的不要緊,關鍵是搜索引擎認為你是不是原創。這個加入收藏就是方便別人加入收藏,要在頁面留一個。還有用戶體驗,界面的設計,打開速度這些。推薦系統這個就不說了。站外優化主要是以上這些。
外鏈建設也是涉及到流量的部分,站內只是你自己怎么把你的房子,把你的客廳,把你的家裝修好。有沒有人來還是另外一件事。既然說到流量,站外優化就是你的流量怎么來的問題。首先,剛才提到的友情鏈接交換這是一種,還有博客,這種嵌入的外鏈,一些書簽網站論壇。這些大家看一眼,論壇,掘客,百科問答。
這些自媒體等都可以帶來流量。然后剛才提到的這種,自然流量和搜索引擎流量, SEO 主要做的就是搜索引擎的流量部分,我們最開始可能是自己主動去到處發鏈接,去搞友情鏈接,到處去宣傳網站。當這些外鏈達到一定數量級的時候,可能就變成被動流量了。每天總會有一些曝光。比如說你在外面發了100 個,過了兩個月之后,可能每天有那么十幾個人會看到,會進到你的網站來,這是一個長期的流量建設過程。
廣告投放這個,是剛才付費流量的部分,說過了。這里還有一些奇技淫巧,之前看到了,比如說你的域名,你想宣傳的網站,可以假裝要賣域名,把你的域名放到各大域名交易所的網站上,如果域名看起來有點意思,可能就會有些流量進來,來看一下這個域名現在是個什么東西。
工具,這里邊也有很多了,有統計分析相關的這些工具。我講的主題比較深,大家可能都忘了前面是什么了,這個工具是 SEO 相關的工具,比如說統計分析的,關鍵詞的工具,查關鍵詞排名的,查長尾關鍵詞的。長尾關鍵詞挖掘是什么意思呢?你有一個詞,比如說電飯煲,這種是核心關鍵詞。那么,比如說電飯煲怎么維護?電飯煲壞了怎么修?這些就是長尾關鍵詞。這些長尾關鍵詞平時的量很小,但是你把長尾關鍵詞建設好以后,因為他的時效性比較長,比如說每天可能只有幾十個,但是你大量的長尾關鍵詞建設好之后,流量也是非??捎^的。
比如說像剛才騰訊云阿里那種,可能都是有上千或者是幾千個這種關鍵詞。平時通過這種大量長尾關鍵詞進來的量也是非??捎^的。還有知乎引流工具。知乎引流,之前也提到一點,怎么從知乎把流量引進來,現在已經有對應的工具去幫你發現那些熱門的回答。然后你再通過這些熱門的回答,形成一篇你自己非常高質量的回答。你在這個回答里面在嵌入你的公眾號,嵌入你的品牌,嵌入你要賣的東西,嵌入你的網站,都可以。這個也是常規操作。
如果你沒有這些東西的話,知乎好物推薦也可以。有很多人靠好物推薦,現在也過得不錯。寫一篇非常好的回答,然后就直接用知乎好物推薦去賺傭金,它走的是京東淘寶聯盟這些的分傭。其實核心也是我今天要講的,通過內容獲取的流量。知乎本身就是一個內容平臺,他是問答的形式內容平臺。你作為一個個體,你想去吸引好的流量進來,吸引高贊,吸引高轉發,你也是要做一個非常高質量的回答才行。
內容工具剛才也說過了??炫?,其實是黑帽 SEO 的部分。這個后面再說。新站 SEO 的基本步驟,之前也說過了。先確定關鍵詞,然后建站充實內容,不要太早去提交搜索引擎,還有外鏈建設這些,然后通過剛才說的統計分析工具,還有一些增長工具,前面提到的增長黑客,比如像 GrowingIO這些,它本身形式上看起來是一個埋點統計的東西,其實側重在增長。你把埋點埋進去以后,你會看到數據,它會針對數據給你一些模型和建議。
下一個就是黑帽的部分,之前可能提過一點。首先是霸屏,怎么實現呢?就是通過短時間內大量生成內容,聊天也是,聊天刷屏就是一直發表情了?;蛘甙l大量的廢話。
百度霸屏,比如說每天 300 篇每天 500 篇文章,這個文章是怎么生成的呢?前面提到這些,機器來生成,可能質量不太高,但是通過欺騙搜索引擎也可以做 SEO。SEO 本身也是一個攻防博弈的過程,大家一直在想方想辦法找它的算法漏洞,然后搜索引擎就一直在提升算法,讓它變得更智能,來識別出那些好的內容。如果搜索引擎有點追求的話,還是想識別好的內容出來。
第二個就是站群,這個很古老的東西,早期都是靠站群來搞的。最明顯的就是圖片站,大家一不小心進了一個挺好看的圖片站,然后發現點一點又到了另外一個站,再點一點又到了一個站。每個站的域名圖片都不一樣,然后不斷有驚喜。其實如果你仔細去分析,有的時候可能是一個 IP,有可能是根本完全不同的 IP,你根本看不出來,它其實是一個人生成的。不只是圖片站,有很多網站都是,比如說一些加盟的網站,然后什么賣卡賣點卡的這種,都是通過站群的做的。
把剛才的那些批量生成的內容換成不同站點的形式,然后通過友情鏈接把你圈在里面,你只要在任何一個渠道進了它的站,然后他通過一些擦邊球的內容,讓你一直在里面轉,即使你想跳走,忽然看到另外一個站跳走以后,其實還是他的站點。
那站群有什么用?你的流量一直在他的站里邊玩,我一個站流量可能不多,但是我有 100 個站,流量是非常可觀的,還可以通過工具去批量發廣告。比如說做個管理后臺,我一上架廣告,它就在 100 個站里面全都出現廣告,這個流量就很值錢了。
廣告聯盟也是,這些站都可以通過廣告聯廣告聯盟來賺錢。微信群控,大家應該也聽過,網上有一些圖,滿墻都是手機的那種,這個就是群控的方式來實現的。它可以模擬不同用戶,模擬大量真實用戶的點擊和訪問。你比如說一篇公眾號的文章,可能會通過微信群控這種,短時間把粉絲或者閱讀量刷上去,你想要 10w+ ?很簡單,出錢就可以了。你要 10w+ 贊都可以,反正就是花錢。這種有可能會被微信識別出來,這也是一個博弈的過程。抖音外掛也是,這些都是刷贊之類的。好了,SEO 的部分講完了。
SEM 這個也是很大話題,就是搜索引擎營銷,前面的 SEO 也是有營銷的部分。我們主動去買外鏈,主動去讓流量進來,這也是營銷的一部分。這個就涉及到自然搜索,還有花錢的部分,CPM/CPC 后面列了這么多方式,就不說了。做搜索引擎營銷,百度品專這些都是,你花錢來做營銷。
下面還有一些奇技淫巧。首先是關鍵詞截流,因為前面提到的關鍵詞的部分,比如說大家微信搜一搜的時候,會有很多推薦內容,尤其是在搜熱點的時候。如果突然看到一些熱點,然后你看微信指數,熱點關鍵詞的指數會突然飆上去。這個時候就會有人做關鍵詞截流的事情,他可以快速發一篇文章,比如說頭盔。頭盔當時就是一個熱點,有人很快地寫了一篇文章,標題帶頭盔字樣,然后里面就是賣頭盔。在很短的時間賣出去很多頭盔。
關鍵詞截流的原理是什么呢?就是蹭熱點關鍵詞,然后在大家都沒反應過來的時候,有人去搜熱點相關的新聞或者是相關的消息的個時候,因為網上內容很少,只有你的內容被收錄了,那就只能出現你的內容,就相當于把這個位置站住了。
知乎引流也是。你現在搜很多東西,前幾個出現的都是知乎。第一頁一定會有知乎。如果真的是你想要的關鍵詞,可以把你的內容埋到第一頁的知乎的問答的回答里面。如果你的回答非常好,可能在話題下面的回答會被置頂。一旦再有人在百度搜索你的關鍵詞,知乎出現的第一頁他點開看,就會看到你的第一個回答,流量就進來了。你的回答里面可以再繼續向你的網站引流,或者是賣東西之類的,最好是沉淀到你自己的流量里邊,你可以放個人個人的私域流量。
AppStrore 也有很多關鍵詞截流,大家應該也有體會,你隨便搜一個常規的音樂 App,視頻 App 的名字,會發現很多其他跟它類似的全都能出現。真的是因為它智能嗎?并不是。因為他把應用的介紹里面,其他同類的競爭者全都寫上去了。比如說我某某 App 是「像 xxx,xxx,xxx,xxx 一樣的 App」。這樣的話就相當于把關鍵詞全都占了。
這個 AppStrore 是沒有什么懲罰機制的,有一些搜索引擎,年頭比較久了,是比較成熟的,你如果堆砌大量的關鍵字,比如說一個頁面堆砌二三十個關鍵詞,這種是會被懲罰的。但應用商店還沒有這方面的措施,所以所有的應用都是把同類的東西全貼上去,你只要搜類似的都能把它搜出來。
還有一些意想不到的曝光,剛才提到的域名交易網站,還有一些輸入錯誤的,我不知道大家有沒有類似的經歷,你想搜一個比較知名的網站,但是打錯了,發現到了另外一個網站,這種流量也是也是很可觀的。比如這個我有時候就會打錯,sougou.com,它真的是一個搜「狗」的網站。這個就是域名錯誤帶來的流量。這個就是一些意想不到的曝光。
內容紅利,內容其實是有紅利的,在這些內容平臺上面非常明顯。因為內容平臺它依賴的核心競爭力就是它的內容的數量和質量。所以在它早期的時候,一定會非常重視那些質量好的內容。比如說像知乎、小紅書這些,為什么那些早一點的知乎大 V,如果認真回答問題,慢慢都能成為大 V?早期平臺非常重視扶持這些愿意生產內容的用戶。羊毛出在羊身上,你就是羊,平臺要想辦法讓你去生產內容。
有很多人是分自愿分享的,自己什么利益也沒有,就是愿意分享。還有是需要激勵的,可能給個級別,給個什么專欄作家,給個什么優質作者,有一些榮譽。然后每年給一些小禮物之類的。
還有些要付錢的就給錢了,給稿費。有時候這兩條路很難并行,因為有些人他就是為了情懷,他寫完了以后你如果給錢,除非這個錢已經能蓋過情懷。如果說錢不多,可能我因為你給我錢我反而不寫了,會有這種情況存在。比如說本來我挺愛寫的,開一個贊賞可能每天幾塊錢,但是也可能就不寫了。
小紅書也是,小紅書紅了好多年了,現在仍然是一個非常有價值的入口。這種種草的模式缺的就是一些優質的內容作者,并不一定自己要多能寫,你可以去研究它的模式,可以去研究那些寫得好的人,你把那些寫得好的模式全都抄一遍,然后你按照他們方式去模仿,你就能寫得很好。因為這些都是結構化寫作,什么叫結構化寫作?跟八股文差不多,跟寫作文差不多,你只要固定套路就可以了。不需要像虛構類的的就那么隨意,沿著套路,前面什么樣后面什么樣,把這個框架天天貼到你的桌子上,你就天天按照框架一條條去搜集素材,就能寫得差不多。但不一定說能一下就紅,但只要量足夠,總會有一些能帶來流量。
所以說,想做內容營銷的話,一定要重視這些平臺的早期紅利,如果現在突然有一個什么新的內容平臺出來,你如果是想建立一些影響力的話,就要抓住這種機會。
像 CSDN 上面很多比較大的號,其實都已經是爬蟲爬取的了,都是做技術的,這些東西輕車熟路了。你看那些幾百萬的百萬粉絲的,基本上都是爬蟲,然后就搬運,有的下面會寫「我只是互聯網的搬運工」,你去告他也沒什么辦法,有些可能過了很長時間才發現被人抄了。告也沒什么辦法,抄一兩篇文章平臺也不至于把它打死。
這些是有共生的關系的,平臺知道要維護那些真正的原創作者的版權,但是它也需要大量內容來充實。所以他不能一棒子把這些爬蟲都打死。如果說全靠原創內容,是非常有限的,而且跟開飯店一樣嘛,你的競爭力建立在廚子身上,你的核心價值在廚子身上,如果廚子都走了怎么辦?所以說平臺想積累自己能力,一定是這個平臺本身的影響力。
抖音和快手早期都有這些問題,他的那些網紅他那些 KOL 如果走了,有些對平臺會造成很大的傷害。那平臺就一定要在這方面權衡,他一方面要幫他上位去幫他建立影響力。一方面又希望影響力大部分是留在平臺手里,而不是被個人帶走。當然那些大的網紅,他們自己也是有自己的調性,他的粉絲都是根植在這個平臺,比如說從抖音挪到快手,雖然也會帶過去一些人,但是真正跟他過去開始用快手的還是會比較少,他們也是有很大遷移成本的,輕易也不會做這種事。
最后一個,沒有免費午餐。因為這一條講的是免費流量。其實任何的免費流量都是要付出的,你起碼是要付出你的時間、精力、注意力。注意力其實也是金錢。之前跟父母講他們就不懂,我用這些東西我都沒花錢,我用微信我也沒花錢,我看頭條我看文章我也沒花錢,他們掙什么錢?羊毛出在豬身上,然后狗付錢,就是這個邏輯。你也不是完全沒有付出的,你付出的時間,你的注意力就是他們想要的。未來的互聯網產品就是在爭奪注意力,你手機上那么多應用,你有那么多文章要看,你有那么多視頻要看,你還有那么多的網課要學習,你的時間到底會花在哪里,這就是需要選擇的問題。
平臺通過什么樣的手段,通過什么樣的營銷能讓你把更多的注意力花在我這里,這個是平臺要思考的問題。你貢獻的就是你的活躍度,你的內容,還有,國內最大問題,你貢獻的是你的隱私。在中國互聯網有句話是說,互聯網是沒有隱私的。做技術的就更清楚了。你可以這樣來想象,互聯網本身是什么,它不是一個虛構的,它是有實體在的。它實體在哪?是在另外一個地方的電腦里,在網線上。
假如說我用我自己的電腦搭了一個網站,你并不知道我背后是什么網站,我用自己的電腦,我申請了一個獨立 IP,申請一個域名,它在網上看起來就是個網站,你在這網站注冊,可能會要求你輸入一些信息,哪怕不是一些很敏感的信息,或者一些看起來很正式的網站,你就把你的身份證什么這些東西輸入了之后。它的本質上什么?本質上是你把這個信息存到我電腦里了,這個比較好理解。
現在網上這些服務其實本質上也是一樣的,你把你的信息存在各個商家的電腦里,這個是一個最基本的原理。但現在隱私都重視起來了,會通過層層的加密,加密至少會保證一般人看不到或者是普通員工看不到。這個是一些舉措,我還有一些是比如說手機號一般會做一個單向的加密,在客戶端就直接加密成一個字符串,比如說一般都是 MD5 或者是再加一個其他的混合的算法,然后再存到數據庫里面。
這樣的話在數據庫里面,也就說在我的電腦里,我只能看到一個加密的字符串,但是我不知道它是怎么加密的,如果別人拿到數據以后不知道怎么解密。不,我還是知道如何加密的。我通過同樣的加密方式,如果能跟匹配上,說明它是對的,但我并不知道它本身解密出來是什么樣子。手機號這個例子并不貼切,因為手機號是可以窮舉的,大概一兩百億的數據。你用同樣的算法去撞,只是時間問題,可以把所有的結果都撞出來。但前提是你知道是怎么算的,如果是不知道怎么算的,這個還是比較安全的。其他的信息也可以通過這種方式來加密。
剛才提到單向加密,這里也可以說一下,加密是有單向和雙向區分的。單項加密只能加密出一個東西,但你并不知道是什么,也沒有辦法根據這個東西來解密。雙向就是你拿到串之后,能按照一定的方式把它給解出來。因為 MD5 已經好多年了, MD5 雖然說是單向加密,但如果只是用一個 MD5 函數,現在網上有很多網站,做了這種大數據的撞庫,你如果只是 MD5,可以放到這些網站上查一下,有可能能「解密」出來。所以隱私信息大家可以多注意一下。
還有注冊的時候,大家都看隱私協議,我不知道大家有沒有看過《硅谷》,里邊那個創始人,他有一次跟另外合伙人討論這個問題,他是個程序員,他就說沒有人會看隱私協議。但是另外一個人,因為他是做行政管理出身的,他就說所有人都會看這個協議。這就是「知識的詛咒」,你自己去做什么的,你就覺得所有人都會都會這樣。
現場也可以調查一下,我覺得應該大部分人還是不看的。里面大概有幾部分你們知道嗎?比如說最基本的你的信息會怎么使用?這個是最重要的。我會怎么用你的信息你都不看一下嗎?雖然你覺得確實是看了也嘚用,但你起碼能知道他大概說了什么。比如說「我不會把你的數據交給未授權的第三方」,言下之意就是我授權我就可以給第三方,對吧?你就知道你的信息是可以給第三方的,只要這個公司授權就可以。大部分都會這么寫的。他不會寫「我不會給任何人」,沒有這么寫的。還有「不會在你不允許的情況下,給任何第三方」,有的時候就會問,就會讓你授權。這個就是說明誰要用你的信息,你要不要允許?你要允許才能用。還有一個關于未成年人的部分,你如果未成年你能不能用這個應用?未成年一定是要監護人的允許才行。如果是 14 歲以下那就犯法了。
還有一個跟技術相關的就是關于 cookie 的使用,在 PC 上面現在很多國外網站下面都會彈個框,說我們的網站會用你的 cookie,你要不要同意?你如果不同意的話,有些功能可能用不了。
那 APP 里面也是有一個關于你的 cookie 是會怎么用的,會在哪保存。說我們會在服務器上保存,保存多久這些。大概都會說。大家可以隨便找一個看看,大同小異。但是也會有一些會留坑的地方。
還有西部世界第三部,我不知道你們看沒看過。那里邊最厲害的那個球,他那個公司是怎么建立起來的?就是在互聯網早期人們還不太重視隱私的時候,錄入了全世界所有人的信息,包括他們各種出生信息,生活習慣,所有的網絡使用習慣。其實我們現在基本上還是處于這個時代,再過 50 年可能就會有這樣一個東西出來。它能根據現有的所有信息,再加上一些算法,能算出來你未來會做什么事情,甚至能算出整個世界是怎么演化的。
對。人工智能算命就是這么來的。他只要掌握的信息足夠,是能算出你的,不能說完全算出命,肯定是有個概率要有一個大概率的事件。然后電影講的系統通過這些來整個掌控人們的生活,所有人都不知道,被操控著。
所有人都上網,所有都是通過計算機控制的,他可以通過比如說他覺得你這個人有危險,這輩子不能做太重要的事情。當你找工作的時候,他就只能給你分配一些打雜的活,然后你就只能找到這種工作,其他工作就找不到。但是普通人是不知道有這么個東西存在的。還是挺震撼的,大家可以看一下。而且這里面涉及到語音識別這些。
那個主角就是。就是《絕命毒師》里邊那個小伙子,他最開始就是一直在打電話,一直在跟他的戰友打電話,但后來你才發現他其實是個 AI,因為他戰友已經去世了,他買了個服務,通過他戰友生前的一些影像資料,來模擬他的聲音,然后天天跟他聊天,這是一個心理心理醫生的治療手段。給他開了這樣一個方子,他的方子就是天天跟他已經逝去的戰友聊天,因為他沒有辦法接受戰場這些創傷和戰友的逝世。
對,后來他找工作也是有個「人」給他打電話,然后就拒絕了他。他就問為什么拒絕我?我還有什么可以改進的?然后那個人一直重復非??吞椎脑?。然后他就做了個「圖靈測試」,問了一句很難回答的問題,然后 AI 就又說了一句完全不相關的話。他就知道整個來把他辭掉的這個「人」是 AI,連人都沒有,就直接把拒絕了。
最后,就是免費的才是最貴的,大家都懂。其實主要是時間了,因為時間才是最貴的。像比特幣大佬李笑來,之前新東方的老師,他有一本書叫《把時間當做朋友》,其實奉行的一個觀點就是:能用錢解決的才是最便宜的。
還有最后一部分,流量池思維。我手邊這個 luckin 嘛,后來翻車了。他當時的 CMO 寫了一本書叫《流量池》,所謂的流量池思維,主要是根據這本書出來的。思維其實還是很有價值的,所以這里單獨講一下。
首先就是這個私域流量建設,剛才說到了。未來一定是這種基于社會關系,基于信任的商業。微商這個事最開始可能有些人看不起,有些人不齒。但是它可能真的是未來。像社區團購這些,一定是你能接觸到的人,你相信的人,你信任的人,你才會購買。直播也是,很多時候,大家就是信任主播,比如說李佳琦的粉絲,都是建立在信任基礎上,并不是他的名氣有多大,東西就一定好用。是你相信他給你推薦的,一定物美價廉的東西。
羅振宇在他的 2019 年的跨年演講上面說到保險的事,保險代理人,可能后面幾十年都會是你的代理人。哪怕他不做保險,或者不在這家公司了,你后面有什么事情都可以找他。以后的生意應該就是這種樣子的:互相信任的人,或者是你周圍的圈子,他們發現什么好玩實用的東西,或者是你需要他們去給你推薦一些什么東西。并且他們能很方便地獲得這種渠道,順便還能有利潤。這個可能是未來主要的商業模式。
流量池思維說的是什么呢?前面說了那么多,如何生產內容,如何產生流量,公域流量私域流量這些東西。流量池思維就是,你想象在整個公域流量就是所有的世間萬物,都是流量,怎樣把它們匯集到一起?變成你能用的,你能變現的,有商業價值的流量。這個就是流量池思維,根本就是連接。
微信上經常有些「交際花」,喜歡到處加人,群里面也會經常有加的。但是有些可能是機器人,還有些是用工具加的。最開始你也不知道為什么要加你,就留一句「你好,我是什么?什么?連接一下」。這個「連接一下」是為了什么?連接一下,你就變成他的私域流量了。還有人簽名說「我把你當朋友,你把我當私語流量?」。
目前主要的一些工具,可以落地這個私域流量的,就是企業微信、公眾號,還有個人微信號,還有社群,比如說微信群、知識星球,企業微信群這些。只要能沉淀下來,你能直接觸達的,都算你的私域流量。
朋友圈也是,微商主要是靠朋友圈多一點,尤其是母嬰圈子。母嬰圈子,朋友圈還有微信群是成交非常高的??赡苣蚱蛘呤鞘裁礀|西,在群里面隨便喊一喊,就能有個幾萬塊錢的訂單,這些都是經常能見到的。
還有就是流量池思維里邊用這個「魚塘」打比方是非常貼切的。首先公域的流量你可以想象成大海、湖泊、或者是別人的魚塘。通過前面講的那些東西去引流成交,那就變成了你自己的魚塘,就是私域流量。然后還可以通過做營銷活動做裂變,裂變出更多的,自己的魚塘。整個路線就是尋魚、找魚,然后圈魚,最后就是釣魚,養魚,生魚,這樣的話大家可能印象比較深了。網上還有一些圖,真的是有畫魚,這個就是魚塘的思維,重點就是從公域流量到私域流量。
比如說剛才說到,大街上過的車,你可以把它當成公域流量,這個車你沒有辦法讓產生利潤。大街上每天過那么多車,每天在商圈有那么多人,你如果通過門口搞活動,讓他進來了,就算是把魚圈住了。過的車也是,如果想收錢,高速公路收費可以收到錢,或者是你在十字路口擦個玻璃什么的,可以收到錢。這個就是從公域流量到私域流量的事情。
最后一個點,流量就等于錢嗎?我看也有人點頭的。早期的互聯網流量,流量就是等于錢。一個網站,只要有人訪問,它就能賣錢。至于說你在里面打廣告有什么作用,會有什么人看,根本不重要??赡苓@個網站是養寵物的,但是你想你在那個里面,放理財廣告,可能就沒什么效果?,F在已經很清晰了,流量完全不等于錢,甚至跟錢可能完全沒關系,虧錢都有可能。你如果用網站來承接流量的話,需要很大的服務器資源。所以可能是虧錢的。而且,現在互聯網上的獲客成本是非常高的。
有數據表示,你在互聯網上達成一個成交,獲客成本大概要 100 塊以上,100~200 之間平均。雖然你沒花錢,但是商家為了能觸達到你,為了能讓你成交,要花 200 多塊錢才能給你接上線。對,現在成本就是這樣的。
所以說,如果從最開始沒有想到怎么落地,怎么變現,你的商業模式是什么樣的時候,流量是沒有任何意義的。首先你要想到如何去承接你的流量,到底是用網站落地頁?還是把它轉到你的公眾號?還是轉到你的微信的個人號?一定要先想好,把每一步都想好。我怎么獲取流量,流量來了以后我用什么接?我用微信接了以后,我一個人能不能接得???比如說我拉了一個群,突然到 100 滿了,那有解決這個問題的「活碼」工具,每 100 個人建個群,通過「活碼」來解決承接流量的問題。
這些人進來了,突然來 1000 人,你能不能忙得過來?拉完群以后,你怎么樣讓他們不走?第一步「尋魚」、「誘魚」,可能有個低成本的勾子產品,比如9 塊 9,或者是免費體驗課,你先來體驗一下。怎么聽課呢?我拉你進一個聽課群,然后到時候有老師講課,然后有免費資料發放。由于這個圈已經把你圈住了,然后課結束之后,我再送一個價值 288 元的聽課體驗券,你只需要再付200 元,就能獲得一個什么樣的課程。這個都是一步一步的轉化,現在玩法都是非常復雜的,沒有辦法很簡單地就能獲得成交。大家也可以想一下,你的錢花得也沒有那么容易,你都是要想想,然后一言不合就關掉了。一言不合就付錢的還是比較少吧。
所以商業模式還有整個的落地過程一定要先想好,才能更好地承接流量。還有技術方面也是,這個人來了,你能不能接得???我們之前做過一些活動,開始沒有預想到有那么大量,真正流量來的時候,可能是接不住的。有可能是你只有實體服務器,不好擴容;也可能是你用了云計算,但是你的擴容機制沒那么好。比如說加機器,這三個字說起來簡單,但并不是說點個按鈕加上就完事了。這里面有很多部署上的問題,還有數據同步的問題。分布式的 CAP 原則(CAP原則又稱CAP定理,指的是在一個分布式系統中,一致性(Consistency)、可用性(Availability)、分區容錯性(Partition tolerance)。CAP 原則指的是,這三個要素最多只能同時實現兩點,不可能三者兼顧),你要遵守。并不是加機器就能解決所有問題。如何承接流量技術上也是要想好的,沒有辦法變現的流量,是浪費資源。
差不多就這么多了。前面最開始是講流量這個事情,就后面涉及到一些關于運營營銷,然后還有一些技術相關的東西。覆蓋的細節比較多,大家有沒有什么問題?
問:我個人感覺他最多就是比較常見的是以廣告的方式去變現。除了以廣告方式面向還有什么其他方式嗎?
答:付費產品或服務。要么是賣產品,要么是賣服務。相當于直接銷售產品,銷售服務都是??梢灾苯淤u給他實體的產品,像我們做家電的主要就是把它引流過來,賣家電就是。對,就是帶貨。然后銷售服務也是,比如說我的咨詢服務,你像律師,比如說香港律師可能一小時都是1000~3000 港幣起的,這個就是服務的錢。
你想想你平時的錢都花在哪?剛才說到電信流量,電信流量你花的什么錢?也是服務嘛。這里我想起來有一本書叫《管道的藝術》,就是講這種賺錢的方式。我們日常打工就是一種提水桶的模式,我們上一天班就是提一天桶,如果哪天不提水桶了,你就沒有錢。
管道是什么?管道就是建一個自來水廠。你想想,你平時交的水費電費他們做什么了?他們平時只要日常維護就可以了。電廠那個廠本身是不能停,但是大部分人他睡覺的時候,你還是要交電費的,你還是要交水費的。整體這個模式是一直有錢在流的。這就是管道的藝術。所以你想商業模式的時候,一定要想那種「雁過拔毛」的生意,只要有人或者有流量,或者有什么東西在你這里流動(整個世界都是流動的)你就能收錢。像高速公路,你只要過就要收錢。
只要有人來人往都可以,或者有現金流在那流動,你可以收點位。比如微信支付、支付寶支付,這些都是要扣點的。這也是一個流水生意,他什么都不做,你只要有 100 塊錢,我就扣你一塊錢,對吧?如果大點企業可能是 0.6%,100 塊錢我扣你 6 毛錢。
利息也是,水在你這留,你可以薅毛,可以用它來生錢。為什么現在很多充值都不讓搞?比如說一個發廊,每一個人都沖 300,我手里邊可能幾十萬,我幾十萬不干別的,先去做理財也有利可圖。
現在很多很多充值的都已經叫停了,不允許充值了。還提前給錢對還。對,提前給錢我就可以蓄水了。這相當于我在水流中間挖了個坑。買房也是,像華潤城那些,一瞬間幾個億留在開發商那里,一天就很多錢,做短貸就很多錢,如果把整個鏈路都事先聊好的話。
你自己也是,如果突然有大筆資金過手,然后搏一搏??嘿嘿,是吧??赡芫蜎]了。期貨是吧?快進快出,對。生豬期貨!商業模式大家可以了解一下,其實還挺有意思的。
問:你自己的視頻號和知乎要去做引流嗎?
答:沒有。首先這個東西客觀講還是需要一定的精力的,比如說視頻。我剛才有提到內容生產的成本問題,那拍視頻的成本相對是比較高的。除非你就拍生活視頻,比如現在我們在這講課,手機往這一支,我就隨便說一段。這個成本可能比較低,但它的質量也會比較低。你如果想做好的視頻,要先想文案,你要想怎么拍?你的機位,穿什么衣服,你也不能太隨意。像視頻有很多油膩大叔,或者直接懟鏡頭的這種,就很粗制濫造。
這些都是潛在的成本??赡芤粋€視頻一兩個小時的制作時間。現在成熟的視頻大號,制作一分鐘視頻,可能就要三四個小時來拍,中間可能還會 NG,不一定就能一次成功。念稿也可能會念錯,不管是念稿還是背稿,念也要念得自然才行吧。就算照著屏幕上的提詞器,照著詞念也不是說所有人都能念得很溜。中間如果卡了覺得不滿意,就要再來一遍。
我發的是讀書視頻,你看著只是照著念,但如果想念得順暢,有的時候也要好幾遍。有時候一條下來嗓子也都啞了,這個就是成本。
文章也是,你想寫好一點的文章,除非突然靈感來了攔都攔不住,可能十幾二十分鐘就能寫一篇。如果平時(還是剛才說的邊際成本的問題)你沒有非常成熟的寫作框架,是很難持續產出的。
還有就是你覺得這個事重不重要?你如果覺得不重要就很容易耽誤,就像健身一樣,你如果沒得過什么大病,總覺得它不是個事兒,肯定是能推就推。所以說,所有的沒有時間,其實都是優先級的問題。每個人時間都是一樣的,只是這個時間你用來做什么的問題。
姬小光,微信公眾號:姬小光(ID:hi-laser),人人都是產品經理專欄作家。現任美的集團電子商務有限公司商城前端組負責人,曾就職于淘寶/騰訊/京東,擁有 10 年電商研發經驗,對產品、設計、研發、運營都有一定見解。
本文原創發布于人人都是產品經理。未經許可,禁止轉載。
題圖來自Unsplash,基于CC0協議
擊上方 "程序員小樂"關注, 星標或置頂一起成長
每天凌晨00點00分, 第一時間與你相約
每日英文
Sleeping is nice. You forget about everything for a little while.
還是睡覺好,能暫時忘掉一切煩惱。
每日掏心話
有些話說與不說都是傷害,有些人留與不留都會離開。如果我放棄了,不是因為我輸了而是我懂了。
來自:bitfan | 責編:樂樂
鏈接:blog.csdn.net/bitfan/article/details/10362461
程序員小樂(ID:study_tech)第 733 次推文 圖片來自網絡
往日回顧:學 Redis 看這篇就夠了,建議收藏!
正文
一、世無英雄,遂使豎子成名
1 Web客戶端編程語言事實上的王者
(1)JavaScript為何成功?
幾乎所有的JavaScript書都會先介紹一番JavaScript的歷史,比較有趣的是我在資料中看到這樣一句話:
JavaScript的設計者Brendan Eich曾在一次采訪中說,JavaScript“幾天就設計出來了”。
Ruby的設計者——松本行弘為此感嘆:
“這樣的出身,得到這樣的成功,還真讓人出乎意料,……”,
“但由于開發周期短,確實也存在著不足……”。
確實,作為一種編程語言,JavaScript并不完美,在實際開發中,JavaScript同樣也存在著嚴重的問題,其中最突出的就是早期沒有完整的規范,導致瀏覽器廠商各行其是所帶來的兼容性問題。
但奇怪的是,就是這樣一個并不完美的東西,最終卻成為了Web客戶端編程語言事實上的王者,而它的種種缺陷,卻給我們帶來了豐富多彩的各種JavaScript庫及框架,整個JavaScript社區則生機勃勃,活力四射,這真是一件很有趣的事。
在我看來,JavaScript的成功在于它“生逢其時”,趕上了互聯網大發展的時代契機。而當時“時無英雄,使豎子成名”。
讀者可能不服氣,那建議你看看那本著名的、指出過“10000小時專業訓練是成為天才的必要條件”的《異類》,在此書中,作者Malcolm Gladwell列舉了諸多二十世紀在IT業呼風喚雨的大人物:微軟比爾蓋茨、保羅艾倫和史蒂夫鮑爾默,蘋果的喬布斯,Google的埃里克施密特,Sun的比爾喬伊……,他們全部出生在1953~1956之間;
再看看當前中國IT大佬們——李彥宏(1968.11)、張朝陽(1964)、馬化騰(1971)、丁磊(1971),馬云(1964),劉強東(1974)……,他們的出生日期都集中在上世紀60與70年代交替的時期,……
為什么會這樣呢?請結合他們創業的時代大背景看看就明白了。
時勢造英雄。JavaScript就是這樣的幸運兒。生逢其時,伴隨著互聯網的發展,有不計其數的Web應用是使用它編寫的,JavaScript應用得越廣,其社區就越活躍,優秀的程序員不斷為JavaScript貢獻大量的框架和庫,還有Google和微軟這樣的大公司不斷地想辦法彌補或改進JavaScript的現有缺陷,推出新的腳本語言和優化其引擎……
一切都構成了一個完整的生態圈。以后的腳本語言,哪怕比JavaScript要好很多,也難以重現JavaScript的輝煌了,JavaScript己經成為Web客戶端事實上的王者。
(2)為什么JavaScript招人罵?
有趣的是,盡管JavaScript用得如此廣泛,但仍然承擔了很多開發者的抱怨,我估計JavaScript可能是“到目前為止,計算機軟件史上被人罵得最多的編程語言”。
為什么會這樣呢?
我看原因有三。
首先是至今猶存的瀏覽器兼容性問題,請看以下代碼:
function showInformation(info) {
var h3 = document.getElementById("info");
//適合于IE,Chrome, Opera
if (h3.innerText!==undefined) {
h3.innerText = info;
}
else {
//適合于FireFox
h3.textContent = info;
}
}
上述代碼只是簡單地給一個 <h3> 元素賦值,你可以看到,代碼必須針對不同的瀏覽器寫不同的代碼,更讓人郁悶的是,還可能為同一種瀏覽器的不同版本寫不同的代碼,有些瀏覽器(比如IE6)生命周期之長讓人無奈,這些都強迫Web開發者把大量時間花在測試兼容性這種毫無成就感的工作之上,實在頗有點浪費生命的感覺。
大家都覺得不爽的地方,就是創新點,于是有了以jQuery為代表的大量的JavaScript庫和框架,其成功在于有意無意地迎合了人們的這種偷懶的心理:
“把麻煩丟給別人,把方便留給自己”。
JavaScript招人罵的第2個原因是它名字引起的誤會。
JavaScript,名字中有個Java,初次聽到幾乎100%的人都以為它與Java有著密切的關系,而且很有可能就是Java語言的子集。
但事實上,叫“李富貴”的人可能在街上討飯,叫“劉美美”的其實長得不怎么樣,而取名“楊德有”的人其實是個小人,干了很多見不得人的事……
這世上名不副實的多了,其實,JavaScript與Java根本是兩種語言,取這個名字純粹是最早設計并實現JavaScript的那批人想攀高枝拍Java馬屁的結果。
由于許多人把它當成自己所熟悉的Java語言去用,結果發現它根本不是自己所熟悉的那種編程語言,加上下面要講的第三個原因讓人編起程來很不爽,許多人憤怒了:“NND,給這丫騙了!”
JavaScript招人罵的第3個原因其實與語言本身無關,而與瀏覽器相關。
許多人最早使用JavaScript不是因為喜歡這種語言,而是工作中必須用它,在實際工作中用得最多的就是DOM,而DOM API的設計與各瀏覽器的具體實現 實在不怎么樣,按照jQuery設計者John Resig的觀點,它絕不可能獲得任何“年度友好API(Friendliest API of the Year)”的獎項!
2 精華與糟粕的并存JavaScript
Douglas Crockford寫了一本《JavaScript:The Good Parts》,在書中他這樣寫到:
JavaScript建立在一些非常好的想法和少數非常壞的想法之上。
那些非常好的想法包括函數、弱類型、動態對象和一個富有表現力的對象字面量表示法,而那些壞的想法包括基于全局變量的編程模型、缺乏塊作用域、“保留”了一堆根本沒用到的保留字,不支持真正的數組(它所提供的類數組對象性能不好)等等。
還有一些是“雞肋”,比如with語句,原始類型的包裝對象,new,void等等
JavaScript受到的主要批判有:
無法應對復雜的互聯網應用程序,不支持大家己普遍熟悉的以類為模板的面向對象編程方式
運行速度慢,其對象內部采用散列表形式組織,相比數組和結構體,存取速度慢
不支持多核CPU,JavaScript沒有線程的概念,也缺乏必要的線程同步手段,使得它幾乎無法編寫能充分應用客戶端多核CPU計算能力的代碼
瀏覽器兼容性問題是硬傷
……
不少被批判的內容并不全是事實,或者說現在不少己經有很大改善,但JavaScript身上的這些罵名是洗不掉的了。
其實,JavaScript本身有很多精華,下面的內容就集中于JavaScript的這些亮點之上。
二、JavaScript技術導航
談到JavaScript技術,其實應該區分以下三個概念:JavaScript語言、JavaScript庫和JavaScript宿主。
JavaScript語言的學習主要是JavaScript語法學習,JavaScript宿主是指JavaScript程序的運行環境,通常是瀏覽器,瀏覽器提供了許多對象(比如window,document等),JavaScript代碼可以直接調用它們,另外,瀏覽器還包容一個專門負責運行JavaScript代碼的組件,我們把它稱為JavaScript引擎,在實際學習過程中,一般不需要深入地了解JavaScript引擎的內部運行機理。JavaScript庫通常是指由JavaScript社區所貢獻出來的能完成特定功能的打包在一起的JavaScript代碼。
在學習過程中,通常是把JavaScript語言與JavaScript運行環境所提供的對象和實現的功能“打包到一塊”作為一個整體學習,因此,下面的介紹不再明確地區分哪些內容屬于JavaScript語言特性,哪些功能實際上是由宿主環境提供的。至于JavaScript庫,不在本文的介紹范圍之內。讀者可自行閱相關的技術書籍。
1 掌握JavaScript基礎編程技能
(1)第一件事情,弄明白在哪兒寫JavaScript代碼
三種方式寫JavaScript代碼。
Inline JavaScript:直接將簡短的JavaScript代碼嵌入到HTML元素聲明中:
<a href="/about" onclick= " alert('this is the thing');">About</a>
Embedded JavaScript:將javaScript放到 <script> 元素中:
<script type="text/javascript"> //在此寫JavaScript代碼 </script>
鏈接外部JavaScript文件:將JavaScript代碼放到獨立的.js文件中,然后在 <script> 元素引用它:
<script type="text/javascript" src="js/external.js"></script>
(2)快速了解JavaScript語法基礎
學習這部分內容,可以與C/Java/C#的基礎語法相對照,重點關注其不同點就行了,以下是部分要點:
JavaScript定義了四種基本數據類型:numbers, strings, Booleans, undefined和null,其余所有的都是對象。
JavaScript所有的數都是64位浮點數,還有一個常量叫NaN(Not a Number),在編程中常用。
JavaScript有一些比較獨特的運算符,列舉幾個: ===(嚴格判等運算符)、 !!(把后面跟著的表達式變成一個bool值),方括號運算符(可以用于訪問對象屬性)
變量的作用域:JavaScript沒有塊作用域,但有函數作用域。即:定義在函數中的參數和變量在函數外部不可見,并且在一個函數中的任何位置定義的變量在該函數中的任何地方都可見。這點與C和Java等編程語言都不一樣。
……
(3)比較獨特與有用的內部對象
JavaScript本身提供了一些內部對象,可以在代碼中直接使用,列舉幾個:
數組:JavaScript其實沒有傳統意義上的數組,因此,你應該把它看成是“另外一種東西”,需要花點時間去明白它的特性。
全局對象:JavaScript中有一個全局的global對象,除了那些有明確對象歸屬的成員,其它所有的東西都成為它的成員,在瀏覽器環境中,window對象就是全局對象。
正則表達式:正則表達式在處理字符串上功能強大,花時間在這上面是值得的。
timer對象:可以用它實現定時調用
……
(4)JavaScript代碼調試方法
有幾種方法可以調試JavaScript代碼,最土的一種是使用alert()輸出信息,比較專業的是使用console.log和設置斷點。
每個Web開發者都一定要至少掌握一種瀏覽器所提供的調試工具:Firebug(Firefox)、IE Developer Tools(IE 8以后)、Opera Dragonfly( Opera 9.5以后)、WebKit Developer Tools( Safari和Chrome)。
大多數瀏覽器調試工具都可以使用F12這個熱鍵呼叫出來,并且其提供的功能都很強大。
另外,一些IDE(比如Visualstudio),也支持對JavaScript代碼的跟蹤與調試。
2 把握JavaScript編程語言的精華
在學習JavaScript的過程中,我建議別把JavaScript看成是一種OO語言,應把它看成是一種函數式語言!
另外,重點搞掂函數、對象、閉包三個東東,則JavaScript精華盡在我手!
首先,我們先來擺函數的龍門陣。
(1)函數
JavaScript中函數是“一等公民”。理解JavaScript的函數是打開這門編程語言奧秘的鑰匙,由它可以引申出N多重要的特性。
函數是一個對象
JavaScript使用function關鍵字定義函數
function add(x, y) { return x + y; }
函數可看成是一個“函數”對象。函數名是指向這一“函數”對象的指針,可以有多個變量引用同一個函數對象
console.info(add(100,200)); //300
var other =add; //other和add引用同一函數對象
console.info(other(300,400)); //700
函數中定義的變量是私有的,因此,JavaScript變量只有兩種作用域:全局的和由函數所限制的局部作用域。這點非常重要。
函數可以沒有名字,我們通常把這種“匿名”函數賦值給一個變量,通過變量來調用它:
var square = function (x) { return x * x; } console.info(square(10)); //100
牢記“函數是一個對象”,對看懂許多JavaScript代碼至關重要。
返回函數的函數
由于函數是對象,因此,我們可以寫出一個返回函數的函數,這是一種非常重要的編程技巧:
function func(x,y) {
var value=300;
return function () {
return value + x + y;
};
}
console.info(func(100, 200)()); //600
被返回給外界的“內部”函數能夠直接訪問外部函數的變量,并且需要時它還可以再返回另一個函數,這樣便可以構成一個排成“一字長蛇陣”的連續函數調用語句,這在許多JavaScript庫中都能看到。
函數的參數
JavaScript對函數的要求極其地寬松。
定義函數時,不需要指定參數類型,對于參數值,JavaScript不會進行類型檢查,任何類型的值都可以被傳遞給參數。
對于函數參數,如果過少,沒得到值的參數為undefined,如果過多,多的會被忽略掉。
JavaScript將所有傳給函數的參數放到一個arguments對象中(它類似于數組,但JavaScript中沒有傳統意義上的數組,只能說是類似于數組的對象),使用它可以寫出靈活的代碼,比如模擬實現OO語言中的方法重載(method overload).
特別地,函數可以作為另一個函數的參數:
var values = [ 213, 16, 2058, 54, 10, 1965, 57, 9 ]; values.sort(function(value1,value2){return value2 - value1; });
如果有C#的delegate經驗,看懂上述代碼一點也不困難,反過來,理解了上述JavaScript代碼,再學習C#的delegate和Lambda表達式也就沒多少難度,這就是各種語言均有相通之處的一個例子。
this對象
JavaScript中的this與Java/C#中的不一樣,在JavaScript中,每次對函數的調用都有一個上下文對象,this關鍵字引用它。如果函數歸屬于某個對象,則this關鍵字將引用此對象,它就是本次函數調用的上下文。
this引用的函數上下文對象是可以動態改變的,使用函數對象的call方法可以動態地指定它:
window.color = "red";
var o = { color: "blue" };
function sayColor(){
alert(this.color);
}
sayColor(); //red
sayColor.call(this); //red
sayColor.call(window); //red
sayColor.call(o); //blue
不少JavaScript庫中,使用這個特性玩出了許多花樣。
(2)閉包
“閉包(closure)”是函數式編程的重要特性,這也是在學習時最讓人難以理解的技術關鍵點之一。請費點腦筋看看以下代碼:
function a() {
var i = 0;
return function b() {
console.info(++i);
};
};
var c = a();
for (var i = 0; i < 10; i++) {
c();
}
上述代碼中,內部函數b中的代碼會訪問外部函數a中的變量i, 最值得注意的是:執行完c=a()一句后,函數a()己經執行完畢,但由于c引用a()返回的函數b,因此,當前的執行環境被完整保存,從而讓i保存上次調用的值!
這就是閉包的神奇特性。
閉包在JavaScript Library開發中被廣泛使用。
有關對閉包內部機理的詳細介紹,可以參看《Professional JavaScript For Web Developer》一書。
(3)對象與原型
JavaScript的面向對象特性非常地獨特,學習這部分內容時,己非常熟悉C#/C++/Java的朋友一定要Undo己有的知識,才能真正理解它們。
對象的創建
在JavaScript中,對象并不是以類為模板創建出來的,它可以看成是一堆屬性的集合,每個屬性都有一個name(就是它的屬性名字)和Value。
正式地說,JavaScript中的對象是可變的鍵控集合(keyedcollections),既然是一個集合,所以它支持foreach遍歷,也支持動態地給對象添加(直接賦值即可)和刪除成員(使用delete內部函數)。
JavaScript中可以使用四種方式定義對象,用起來非常地靈活:
方式一:定義一個空對象,再給它添加成員:
var myObject = {};
myObject.name = “John”;
myObject.age = 29;
方式二:使用對象字面量直接創建對象:
var myObject = { name:"John", age:40 };
可以看到,這種形式非常類似于Json字串,事實上,JavaScript提供了相應的機制直接由JSON字串創建JavaScript對象(或反之)
方式三:使用工廠函數構建
new一個空白對象,添加完成員之后,return給外界:
function createPerson(name, age, job){
var o = new Object();
o.name = name;
o.sayName = function(){
alert(this.name);
};
return o;
}
方式四:通過對象構造函數創建
function Person(name, age, job){
this.name = name;
this.sayName = function(){
alert(this.name);
};
}
var person1 = new Person(“John”, 29, “Software Engineer”);
可以看到,這種方式使用this關鍵字給對象添加成員,使用new關鍵字調用并創建對象。
通常會把構造函數的首字母設置為大寫的。
構造函數其實也是一個函數,不同之處在于調用它時必須要加一個“new”關鍵字,如果不加這個關鍵字,則對它的調用被認為是普通函數調用。
使用這種方法構造對象,每個對象都加了一個constructor屬性:
alert(person1.constructor== Person); //true
JavaScript對象在運行時可以動態地創建和修改其成員,這就給編程帶來了很強的靈活性,下面舉一個例子,看看如何在函數內部構建一個數據緩沖區:
function getElements(name) {
if (!getElements.cache)
getElements.cache = {};
return getElements.cache[name] =
getElements.cache[name] || document.getElementsByTagName(name);
}
上述函數在內部使用一個名為cache的空對象用于保存己訪問過的頁面元素,僅在首次訪問時調用DOM API去獲取節點對象,從而提升了性能。
對象原型(Pototype)
這是JavaScript語言中最有特色的地方。
function MyObject(name) {
this.name = name;
};
var obj1 = newMyObject("Object1");
//向原型中添加新成員
MyObject.prototype.value = 100;
//新對象與老對象將同時擁有這個新的成員
var obj2 = newMyObject("Object2");
console.info(obj1.value); //100
console.info(obj2.value); //100
上述代碼的背后,其實是以下文字描述的JavaScript內部機理:
每個對象都連接到一個原型對象(Prototype),如果我們添加一個新的屬性到原型中,該屬性會立即對所有基于該原型創建的對象可見。
各個對象的原型也是一個對象,它們可以“鏈接”起來,構成一個原型鏈。
當我們嘗試去獲取對象的某個屬性值,且該對象沒有此屬性值,那么JavaScript會嘗試從它直接關聯的原型對象中去獲取,如果那個原型對象也沒有此屬性值,那么會再從這一原型對象所關聯的另一個原型中尋找,依次類推,直到該過程最后到達終點Object.prototype。如果想要的屬性完全不存在于原型鏈中,那么結果就是undefined。
JavaScript引入原型,其主要目的之一就是為開發者提供經典的OOP編程風格:以類為模板創建對象和實現繼承,其實現思路基于以下事實:
當你創建一個新對象時,你可以選擇某個對象作為它的原型。
以下代碼使用prototype模擬實現了面向對象編程中的繼承特性。
function Parent() {
this.baseFunc = function () {
console.info("基類方法");
};
}
function Child() {
this.childFunc = function () {
console.info("子類方法");
};
}
//形成繼承關系
Child.prototype = new Parent();
var obj = new Child();
obj.childFunc();
obj.baseFunc();
上述示例代碼只是使用JavaScript語言特性實現OOP的方式之一,還有不少JavaScript書還介紹了其他實現繼承的方法,五花八門,大多比較復雜,理解起來有一定難度,類似于“代碼游戲”,這就引發了一個問題:
我們是否一定要使用JavaScript以經典的OOP方式編程?
要回答這樣一個問題,先來思索一下另一個相關聯的現實問題:
是否所有的Web應用都應該使用面向對象的方式開發?
其實要回答這個問題并不困難。
對于很小的很簡單的網站,不用面向對象其實也沒什么問題。想想看,整個網站只有幾個十幾個頁面,這也要分成N個類,應用XXX設計模式,再加上能支持分布式緩存和負載均衡N層架構,是不是有點過份?
當然,對于復雜的網站情況就不一樣了,這種Web系統后臺通常會包容復雜的業務流程,并且很可能需要與多個其他的內部或外部系統進行信息交換,……。實踐證明在這種情況下,面向對象是最有效最成熟的解決問題的方法。
JavaScript本身是一種主要用于Web前端的腳本語言,你想想,一個將要運行于客戶端瀏覽器內的Web網頁,需要它完成多復雜的事?并且就算它真能完成很多工作,也不能將業務邏輯前移到客戶端實現,這會帶來巨大的風險。
盡管現在有Node.js之類可以讓JavaScript代碼跑在服務端,但Node.js更多是基于模塊來構建系統,很少使用它來建立一個擁有復雜的繼承體系的用戶類型系統,這些工作使用標準的OO語言如Java或C#完成更為合適。
另外,JavaSript本身從一開始就沒打算設計成純面向對象編程語言,只是支持OOP,前面也看到了,用原生的JavaScript實現繼承都比較麻煩,如果還想實現多態,那就更費腦筋了。
除非你要寫一個諸如jQuery之類的框架,那深入研究并把握JavaScript的OOP編程技巧才是必須的,大多數Web開發者直接用JavaScript“原生的”函數、閉包、對象、原型這些語言特性就足夠應付工作所需。
3 探索JavaScript應用技術領域
在介紹完了JavaScript編程語言本身的亮點之后,現在將目光轉向JavaScript的應用領域。
(1)BOM
瀏覽器對象模型(BrowserObject Model,BOM)是由瀏覽器實現的,可供JavaScript程序調用的一組對象,通過它JavaScript代碼可以完成與“控制”瀏覽器進程相關的許多工作。BOM由一系列相關的對象構成,主要有以下六個:
window對象,前面也說過,它是JavaScript的最頂層對象,其它的BOM對象都是windows對象的屬性。
document對象表示瀏覽器中加載頁面的文檔對象;
location對象包含了瀏覽器當前的URL信息;
navigator對象包含了瀏覽器本身的信息;
screen對象包含了客戶端屏幕及渲染能力的信息;
history對象包含了瀏覽器訪問網頁的歷史信息。
當瀏覽器裝載網頁完畢之后,這幾大對象就可用了。
基于BOM的編程很簡單,主要就是使用JavaScript訪問這些對象的相關屬性和調用它們的相關方法,查查技術手冊(諸如《JavaScript權威指南》那樣厚達1000多頁的書)就OK了。
(2)DOM
Web網頁本身是一個純文本形式的文檔,是由許多嵌套的HTML元素所構成,如果直接按照字符串來處理文檔,相當地不便。
瀏覽器裝入HTML文檔之后,依據文檔中包容的內容,創建出一棵樹,并把這棵樹稱為“DOM(Document Object Model,文檔對象模型)”,程序員們通常直接稱之為DOM樹。
事實上,Web前端編程主要就是圍繞著DOM樹而展開的。使用JavaScript可以很方便地操控整個DOM樹。其基本步驟可以簡化為以下兩步:
(1)從DOM樹中選取要操作的節點(或節點集合),有多種方式完成這一工作,最常用的就是document對象所提供的getElementById( ):
var div = document.getElementById("info");
其它的JavaScript庫或框架,比如jQuery,提供了更多更方便的方式選擇節點,但其最終目的都是一樣的——選擇要操控的DOM節點。
(2)針對選擇的節點對象,設置其屬性、調用其方法或響應其事件:
div.innerHTML = "Hello,JavaScript";
記住這兩點之后,花些時間看看DOM文檔,知道我們可以使用哪些方法、事件和屬性,也就夠了,在編程上并沒有什么特殊之處。
這里特別地說說事件,DOM規范定義了兩種事件:冒泡型和捕獲型。這兩種類型事件的在DOM樹中傳輸方向正好相反,一個從觸發事件的節點向上傳播到DOM樹的根節點,另一個則從DOM樹的根節點向下傳播到觸發事件的節點。把握這兩者的區別在實際開發中很重要,同時注意不同瀏覽器和不同版本瀏覽器的具體實現會有所區別。
(3)AJAX與JSON AJAX其實它是一個很古老的技術,IE瀏覽器很早就支持它。后來,Google在其Google Map中應用AJAX實現了讓人驚訝的Web體用體驗,一下子讓AJAX成為炙手可熱的技術。
AJAX的思想其實很簡單:
使用瀏覽器實現的XmlHttpRequest對象在“后臺”向Web服務器發出請求,Web服務器收到請求之后,向瀏覽器發回數據,瀏覽器收到之后更新頁面。
以下是簡化過的完成某次AJAX數據交換功能的示例代碼:
var myRequest;
//1:依據瀏覽器的類別創建相應的對象
if (window.XMLHttpRequest) {
//非IE瀏覽器
myRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) {
//IE瀏覽器
myRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
// 2: 響應XMLHttpRequest對象的readystatechange事件,為其定義回調代碼:
myRequest.onreadystatechange = function(){
if (myRequest.readyState=== 4) {
//收到的數據放在myRequest.responseText中,接著可使用DOM來更新頁面
……
}
};
// 發送請求
myRequest.open('GET', 'simple.json', true);
myRequest.send(null);
可以看到,數據取回以后,通常使用DOM來更新頁面。
服務端返回什么樣格式的數據完全可以由開發者自行決定,現在比較流行的是直接返回JSON格式的數據,一是方便,JavaScript能直接解析它;二是數據緊湊,JSON比XML數據量要小得多,三是跨平臺性好,目前許多手機應用都采用JSON來從服務器上提取數據。
(4)各種JavaScript框架 當前在互聯網上可以找到N種JavaScript框架或庫,各有各的用途,各有各的應用場景。有大量的書籍和資料介紹這些框架,在此就不廢話了。如果你時間有限,并且是初學者,那我建議你只要好好學習jQuery就夠了,這是一個當前應用極為廣泛的成熟的框架,設計得非常出色,你可以舉一反三,再學習其他框架也并不困難。
(5)服務端的JavaScript——Node.js JavaScript最初是一種運行在瀏覽器環境中的腳本語言,但Google推出的了一個名為Node.js的JavaScript運行環境,使用其研發的JavaScript V8引擎,使得JavaScript代碼可以運行在服務端。
Node.js采用事件驅動和異步I/O,高度模塊化,性能表現相當優異,屬于近幾年的技術熱點,有機會時我針對它另寫篇文章向大家介紹。
(6)開發Win8與智能手機應用 當前主流的智能手機操作系統——iOS和Android,其瀏覽器都配備了JavaScript腳本引擎,并且對HTML5特性的支持比較好。因此,現在有許多使用JavaScript開發的移動Web應用,開拓了JavaScript應用的新天地。
順便說一下,使用JavaScript也能在微軟的Windows 8中開發新的Windows 8類型的應用并放到Windows商店上去賣,但目前其前景并不算明朗,感興趣的朋友可以自行鉆研一下。
三、我的JavaScript學習建議
不管你對JavaScript感覺如何,只要你從事互聯網應用開發,JavaScript就是你繞不過去的。因此,本小節就針對初學者談談JavaScript的學習建議。
我總結了一下,JavaScript大致可以分為以下幾個學習階段:
(1)開始起步
這一階段主要是學習與掌握基本語法
比如了解JavaScript有哪些關鍵字,有哪些數據類型,變量作用域是如何定義的,分支與循環語句如何編寫等等,這沒什么好說的,幾乎是學習所有編程語言都要完成的工作。
只要你學過C/Java/C#/C++,掌握JavaScript基本語法用不了兩小時。
(2)深入探索
這一階段主要是把握JavaScript特性,學習典型編程技巧,理解相應內部機理
通常這一階段需要閱讀大量的JavaScript技術書籍,并花費相當的時間編寫各種小的Demo,才能真正掌握好JavaScript編程語言,為下一階段打下基礎。需要重點把握的內容在前文己有介紹。
(3)學以致用
基于各種JavaScript庫(或直接使用JavaScript)編寫實際應用,并進一步地學習JavaScript相關的技術,比如Node.js或進一步學習開發智能手機Web應用等技術。
這就沒什么好說的啦,依據你的工作與學習需求,選擇相應的內容來學習。不打算成為JavaScript專家的話,大多數人應該都會長期停留在這一階段。
(4)游刃有余
處于這一階段的人,己經具備編寫瀏覽器兼容性和可重用可擴展的庫或框架的能力
這部分人精通JavaScript同時又有自己的想法,往往會致力于開發新JavaScript庫及框架,或者是進一步擴充JavaScript的具體應用領域。
(5)開彊拓土
設計全新的腳本編程語言和運行平臺
這活個人英雄主義可能就行不通了,現在通常是由大公司或“大牛人”來做,比如Google推出了V8引擎,還設計了一種JavaScript的替代語言——Dart(https://www.dartlang.org/),意圖彌補JavaScript的缺陷。
而C#的設計者——AndersHejlsberg,就參與了微軟推出的TypeScript(http://www.typescriptlang.org/)腳本編程語言的設計與研發工作。與TypeScript類似的另一種知名的腳本編程語言是CoffeeScript(http://coffeescript.org/),它們都構建了一套“自認為”更合理的語法體系,但并不實現自己的腳本運行引擎,而是把程序代碼“編譯(Complile)”成標準的JavaScript代碼,在現有的JavaScript引擎上運行。
小結
JavaScript雖是一種有著近20年歷史的編程語言,但其生命力卻日見旺盛,伴隨著互聯網的發展,它己經成為21世紀最重要的編程語言之一。
JavaScript技術領域包容相當多的內容,并且還在擴展當中。這篇小文從諸多JavaScript技術書籍和教學資源中選出了一些我覺得比較重要的內容整理并介紹給大家,掛一漏萬,且可能存在著錯誤,只希望能給初學者以一點引導與幫助,吾愿足矣!
歡迎在留言區留下你的觀點,一起討論提高。如果今天的文章讓你有新的啟發,學習能力的提升上有新的認識,歡迎轉發分享給更多人。
猜你還想看
阿里、騰訊、百度、華為、京東最新面試題匯集
Nginx是什么?能干嘛?看完這篇你就明白了!
聊聊 API 簽名方式,看完這篇就明白了!
我的名片能運行Linux和Python,還能玩2048小游戲,成本只要20元
關注「程序員小樂」,收看更多精彩內容
嘿,你在看嗎?
*請認真填寫需求信息,我們會在24小時內與您取得聯系。