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
融界2024年4月5日消息,據(jù)國(guó)家知識(shí)產(chǎn)權(quán)局公告,華為云計(jì)算技術(shù)有限公司申請(qǐng)一項(xiàng)名為“一種網(wǎng)頁(yè)的操作分析方法及裝置“,公開(kāi)號(hào)CN117827603A,申請(qǐng)日期為2022年9月。
專(zhuān)利摘要顯示,本申請(qǐng)公開(kāi)了一種網(wǎng)頁(yè)的操作分析方法及裝置。其中方法為:獲取用戶(hù)操作網(wǎng)頁(yè)產(chǎn)生的埋點(diǎn)數(shù)據(jù);根據(jù)埋點(diǎn)數(shù)據(jù),確定用戶(hù)對(duì)網(wǎng)頁(yè)的第一操作序列,第一操作序列為用戶(hù)在操作過(guò)程中對(duì)網(wǎng)頁(yè)中的頁(yè)面元素依次進(jìn)行的實(shí)際操作構(gòu)成的序列;根據(jù)第一操作序列與第二操作序列之間的差異操作構(gòu)成的差異操作集合,確定網(wǎng)頁(yè)的操作分析結(jié)果,第二操作序列為操作過(guò)程中對(duì)網(wǎng)頁(yè)中的頁(yè)面元素依次進(jìn)行的預(yù)期操作序列。通過(guò)埋點(diǎn)數(shù)據(jù),能夠直接體現(xiàn)用戶(hù)在操作網(wǎng)頁(yè)過(guò)程中的實(shí)際操作序列。與第一操作序列進(jìn)行對(duì)比,更精細(xì)化地體現(xiàn)實(shí)際操作過(guò)程與預(yù)期操作過(guò)程的差異。因此能更準(zhǔn)確地定位出網(wǎng)頁(yè)操作過(guò)程中的缺陷,提供了一種更加準(zhǔn)確的網(wǎng)頁(yè)的操作分析方法。
本文源自金融界
這里是云端源想IT,幫你輕松學(xué)IT”
嗨~ 今天的你過(guò)得還好嗎?
我們總是先揚(yáng)起塵土
然后抱怨自己看不見(jiàn)
- 2024.04.17 -
JavaScript是一種輕量級(jí)的編程語(yǔ)言,通常用于網(wǎng)頁(yè)開(kāi)發(fā),以增強(qiáng)用戶(hù)界面的交互性和動(dòng)態(tài)性。然而在HTML中,有多種方法可以嵌入和使用JavaScript代碼。
本文就帶大家深入了解如何在HTML中使用JavaScript。
要在HTML中使用JavaScript,我們需要使用<script>標(biāo)簽。這個(gè)標(biāo)簽可以放在<head>或<body>部分,但通常我們會(huì)將其放在<body>部分的底部,以確保在執(zhí)行JavaScript代碼時(shí),HTML文檔已經(jīng)完全加載。
使用 <script> 標(biāo)簽有兩種方式:直接在頁(yè)面中嵌入 JavaScript 代碼和包含外部 JavaScript 文件。
包含在 <script> 標(biāo)簽內(nèi)的 JavaScript 代碼在瀏覽器總按照從上至下的順序依次解釋。
所有 <script> 標(biāo)簽都會(huì)按照他們?cè)?HTML 中出現(xiàn)的先后順序依次被解析。
HTML 為 <script> 定義了幾個(gè)屬性:
1)async:可選。表示應(yīng)該立即下載腳本,但不妨礙頁(yè)面中其他操作。該功能只對(duì)外部 JavaScript 文件有效。
如果給一個(gè)外部引入的js文件設(shè)置了這個(gè)屬性,那頁(yè)面在解析代碼的時(shí)候遇到這個(gè)<script>的時(shí)候,一邊下載該腳本文件,一邊異步加載頁(yè)面其他內(nèi)容。
2)defer:可選。表示腳本可以延遲到整個(gè)頁(yè)面完全被解析和顯示之后再執(zhí)行。該屬性只對(duì)外部 JavaScript 文件有效。
3)src:可選。表示包含要執(zhí)行代碼的外部文件。
4)type:可選。表示編寫(xiě)代碼使用的腳本語(yǔ)言的內(nèi)容類(lèi)型,目前在客戶(hù)端,type 屬性值一般使用 text/javascript。不過(guò)這個(gè)屬性并不是必需的,如果沒(méi)有指定這個(gè)屬性,則其默認(rèn)值仍為text/javascript。
1.1 直接在頁(yè)面中嵌入JavaScript代碼
內(nèi)部JavaScript是將JavaScript代碼放在HTML文檔的<script>標(biāo)簽中。這樣可以將JavaScript代碼與HTML代碼分離,使結(jié)構(gòu)更清晰,易于維護(hù)。
在使用<script>元素嵌入JavaScript代碼時(shí),只須為<script>指定type屬性。然后,像下面這樣把JavaScript代碼直接放在元素內(nèi)部即可:
<script type="text/javascript">
function sayHi(){
alert("Hi!");
}
</script>
如果沒(méi)有指定script屬性,則其默認(rèn)值為text/javascript。
包含在<script>元素內(nèi)部的JavaScript代碼將被從上至下依次解釋。在解釋器對(duì)<script>元素內(nèi)部的所有代碼求值完畢以前,頁(yè)面中的其余內(nèi)容都不會(huì)被瀏覽器加載或顯示。
在使用<script>嵌入JavaScript代碼的過(guò)程中,當(dāng)代碼中出現(xiàn)"</script>"字符串時(shí),由于解析嵌入式代碼的規(guī)則,瀏覽器會(huì)認(rèn)為這是結(jié)束的</script>標(biāo)簽。可以通過(guò)轉(zhuǎn)義字符“\”寫(xiě)成<\/script>來(lái)解決這個(gè)問(wèn)題。
1.2 包含外部 JavaScript 文件
外部JavaScript是將JavaScript代碼放在單獨(dú)的.js文件中,然后在HTML文檔中通過(guò)<script>標(biāo)簽的src屬性引用這個(gè)文件。這種方法可以使代碼更加模塊化,便于重用和共享。
如果要通過(guò)<script>元素來(lái)包含外部JavaScript文件,那么src屬性就是必需的。這個(gè)屬性的值是一個(gè)指向外部JavaScript文件的鏈接。
<script type="text/javascript" src="example.js"></script>
與解析嵌入式JavaScript代碼一樣,在解析外部JavaScript文件(包括下載該文件)時(shí),頁(yè)面的處理也會(huì)暫時(shí)停止。
注意:帶有src屬性的<script>元素不應(yīng)該在其<script>和</script>標(biāo)簽之間再包含額外的JavaScript代碼。如果包含了嵌入的代碼,則只會(huì)下載并執(zhí)行外部腳本文件,嵌入的代碼會(huì)被忽略。
通過(guò)<script>元素的src屬性還可以包含來(lái)自外部域的JavaScript文件。它的src屬性可以是指向當(dāng)前HTML頁(yè)面所在域之外的某個(gè)域中的完整URL。
<script type="text/javascript" src="http://www.somewhere.com/afile.js"></script>
于是,位于外部域中的代碼也會(huì)被加載和解析。
1.3 標(biāo)簽的位置
在HTML中,所有的<script>標(biāo)簽會(huì)按照它們出現(xiàn)的先后順序被解析。在不使用defer和async屬性的情況下,只有當(dāng)前面的<script>標(biāo)簽中的代碼解析完成后,才會(huì)開(kāi)始解析后面的<script>標(biāo)簽中的代碼。
通常,所有的<script>標(biāo)簽應(yīng)該放在頁(yè)面的<head>標(biāo)簽中,這樣可以將外部文件(包括CSS和JavaScript文件)的引用集中放置。
然而,如果將所有的JavaScript文件都放在<head>標(biāo)簽中,會(huì)導(dǎo)致瀏覽器在呈現(xiàn)頁(yè)面內(nèi)容之前必須下載、解析并執(zhí)行所有JavaScript代碼,這可能會(huì)造成明顯的延遲,導(dǎo)致瀏覽器窗口在加載過(guò)程中出現(xiàn)空白。
為了避免這種延遲問(wèn)題,現(xiàn)代Web應(yīng)用程序通常會(huì)將所有的JavaScript引用放置在<body>標(biāo)簽中的頁(yè)面內(nèi)容的后面。這樣做可以確保在解析JavaScript代碼之前,頁(yè)面的內(nèi)容已經(jīng)完全呈現(xiàn)在瀏覽器中,從而加快了打開(kāi)網(wǎng)頁(yè)的速度。
JavaScript 解析過(guò)程包括兩個(gè)階段:預(yù)處理(也稱(chēng)預(yù)編譯)和執(zhí)行。
1、執(zhí)行過(guò)程
HTML 文檔在瀏覽器中的解析過(guò)程是:按照文檔流從上到下逐步解析頁(yè)面結(jié)構(gòu)和信息。
JavaScript 代碼作為嵌入的腳本應(yīng)該也算做 HTML 文檔的組成部分,所以 JavaScript 代碼在裝載時(shí)的執(zhí)行順序也是根據(jù) <script> 標(biāo)簽出現(xiàn)的順序來(lái)確定。
你是不是厭倦了一成不變的編程模式?想要突破自我,挑戰(zhàn)新技術(shù)想要突破自我,挑戰(zhàn)新技術(shù)?卻遲遲找不到可以練手的項(xiàng)目實(shí)戰(zhàn)?是不是夢(mèng)想打造一個(gè)屬于自己的支付系統(tǒng)?那么,恭喜你,云端源想免費(fèi)實(shí)戰(zhàn)直播——《微實(shí)戰(zhàn)-使用支付寶/微信支付服務(wù),網(wǎng)站在線(xiàn)支付功能大揭秘》正在進(jìn)行,點(diǎn)擊前往獲取源碼!云端源想
2、預(yù)編譯
當(dāng) JavaScript 引擎解析腳本時(shí)候,他會(huì)在與編譯期對(duì)所有聲明的變量和函數(shù)預(yù)先進(jìn)行處理。當(dāng) JavaScript 解析器執(zhí)行下面腳本時(shí)不會(huì)報(bào)錯(cuò)。
alert(a); //返回值 undefined
var a=1;
alert(a); //返回值 1
由于變量聲明是在預(yù)編譯期被處理的,在執(zhí)行期間對(duì)于所有的代碼來(lái)說(shuō),都是可見(jiàn)的,但是執(zhí)行上面代碼,提示的值是 undefined 而不是 1。
因?yàn)樽兞砍跏蓟^(guò)程發(fā)生在執(zhí)行期,而不是預(yù)編譯期。在執(zhí)行期,JavaScript 解析器是按照代碼先后順序進(jìn)行解析的,如果在前面代碼行中沒(méi)有為變量賦值,則 JavaScript 解析器會(huì)使用默認(rèn)值 undefined 。
由于第二行中為變量 a 賦值了,所以在第三行代碼中會(huì)提示變量 a 的值為 1,而不是 undefined。
fun(); //調(diào)用函數(shù),返回值1
function fun(){
alert(1);
}
函數(shù)聲明前調(diào)用函數(shù)也是合法的,并能夠正確解析,所以返回值是 1。但如果是下面這種方式則 JavaScript 解釋器會(huì)報(bào)錯(cuò)。
fun(); //調(diào)用函數(shù),返回語(yǔ)法錯(cuò)誤
var fun=function(){
alert(1);
}
上面的這個(gè)例子中定義的函數(shù)僅作為值賦值給變量 fun 。在預(yù)編譯期,JavaScript 解釋器只能夠?yàn)槁暶髯兞?fun 進(jìn)行處理,而對(duì)于變量 fun 的值,只能等到執(zhí)行期時(shí)按照順序進(jìn)行賦值,自然就會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤,提示找不到對(duì)象 fun。
總結(jié):聲明變量和函數(shù)可以在文檔的任意位置,但是良好的習(xí)慣應(yīng)該是在所有 JavaScript 代碼之前聲明全局變量和函數(shù),并對(duì)變量進(jìn)行初始化賦值。在函數(shù)內(nèi)部也是先聲明變量,后引用。
通過(guò)今天的分享,相信大家已經(jīng)對(duì)JavaScript在HTML中的應(yīng)用有了一定的了解。這只是冰山一角,JavaScript的潛力遠(yuǎn)不止于此。希望這篇文章能激發(fā)大家對(duì)編程的熱情,讓我們一起在編程的世界里探索更多的可能性!
我們下期再見(jiàn)!
END
文案編輯|云端學(xué)長(zhǎng)
文案配圖|云端學(xué)長(zhǎng)
內(nèi)容由:云端源想分享
戰(zhàn)與啟示:從HTML提取失敗中探索信息獲取的新路徑
在數(shù)字化浪潮洶涌的今天,信息的獲取與處理成為了各行各業(yè)不可或缺的核心能力。然而,在追求高效與精準(zhǔn)的數(shù)據(jù)挖掘過(guò)程中,我們往往會(huì)遇到意想不到的挑戰(zhàn),比如本文所提到的“提取頭條HTML內(nèi)容失敗”的困境。這一簡(jiǎn)單卻深刻的失敗經(jīng)歷,不僅揭示了技術(shù)層面的難題,更引發(fā)了我們對(duì)信息獲取策略、技術(shù)迭代以及創(chuàng)新思維的深刻思考。
一、技術(shù)困境的深層剖析
1.1 HTML結(jié)構(gòu)的復(fù)雜性
HTML作為網(wǎng)頁(yè)內(nèi)容的基石,其結(jié)構(gòu)復(fù)雜多變,不同網(wǎng)站、不同頁(yè)面的HTML代碼差異巨大。即便是同一個(gè)網(wǎng)站,隨著版本的更新迭代,HTML結(jié)構(gòu)也可能發(fā)生顯著變化。這種動(dòng)態(tài)性使得基于固定規(guī)則的HTML內(nèi)容提取方法變得脆弱且難以維持,稍有變動(dòng)便可能導(dǎo)致提取失敗。
1.2 反爬蟲(chóng)技術(shù)的阻礙
為了保護(hù)網(wǎng)站內(nèi)容不被非法抓取,許多網(wǎng)站都部署了反爬蟲(chóng)技術(shù)。這些技術(shù)通過(guò)識(shí)別訪問(wèn)者的行為模式、限制訪問(wèn)頻率、設(shè)置動(dòng)態(tài)驗(yàn)證碼等方式,有效地阻止了自動(dòng)化工具的訪問(wèn)。對(duì)于試圖從這類(lèi)網(wǎng)站提取HTML內(nèi)容的用戶(hù)而言,這無(wú)疑是一道難以逾越的屏障。
二、失敗背后的機(jī)遇與挑戰(zhàn)
2.1 促使技術(shù)創(chuàng)新的驅(qū)動(dòng)力
面對(duì)HTML內(nèi)容提取的失敗,我們不應(yīng)僅僅停留在抱怨與無(wú)奈之中。相反,這應(yīng)當(dāng)成為推動(dòng)我們技術(shù)創(chuàng)新、尋求新解決方案的強(qiáng)大動(dòng)力。比如,可以探索更加智能的網(wǎng)頁(yè)解析技術(shù),如基于深度學(xué)習(xí)的自然語(yǔ)言處理算法,它們能夠更好地理解網(wǎng)頁(yè)內(nèi)容的語(yǔ)義結(jié)構(gòu),從而實(shí)現(xiàn)更加精準(zhǔn)、穩(wěn)定的內(nèi)容提取。
2.2 激發(fā)信息獲取策略的調(diào)整
技術(shù)的局限往往促使我們重新審視并調(diào)整信息獲取的策略。在HTML內(nèi)容提取受限的情況下,我們可以考慮通過(guò)其他渠道獲取所需信息,如利用API接口、RSS訂閱、社交媒體平臺(tái)等。這些渠道不僅提供了豐富多樣的數(shù)據(jù)源,還往往具有更高的數(shù)據(jù)質(zhì)量和更好的可訪問(wèn)性。
三、從失敗中汲取的智慧與啟示
3.1 靈活應(yīng)對(duì)變化,擁抱不確定性
在快速發(fā)展的互聯(lián)網(wǎng)時(shí)代,技術(shù)的迭代與變革是常態(tài)。因此,我們必須具備靈活應(yīng)對(duì)變化的能力,不斷適應(yīng)新環(huán)境、新技術(shù)帶來(lái)的挑戰(zhàn)。對(duì)于HTML內(nèi)容提取這樣的任務(wù)而言,我們需要時(shí)刻保持對(duì)新技術(shù)、新工具的關(guān)注與學(xué)習(xí),以便在面臨困境時(shí)能夠迅速找到新的解決方案。
3.2 強(qiáng)化跨領(lǐng)域合作,實(shí)現(xiàn)資源共享
信息獲取與處理的復(fù)雜性往往超出了單一領(lǐng)域的范疇。因此,加強(qiáng)跨領(lǐng)域合作、實(shí)現(xiàn)資源共享顯得尤為重要。通過(guò)與不同領(lǐng)域的專(zhuān)家、團(tuán)隊(duì)建立緊密的聯(lián)系與合作,我們可以共同面對(duì)技術(shù)難題、分享成功經(jīng)驗(yàn)、推動(dòng)技術(shù)進(jìn)步。這種合作模式不僅有助于提升我們的信息獲取能力,還能夠促進(jìn)整個(gè)行業(yè)的健康發(fā)展。
3.3 培養(yǎng)創(chuàng)新思維,勇于嘗試新事物
在信息獲取領(lǐng)域,創(chuàng)新思維是推動(dòng)技術(shù)進(jìn)步的關(guān)鍵因素之一。我們需要敢于突破傳統(tǒng)觀念的束縛、勇于嘗試新事物、不斷探索未知領(lǐng)域。只有這樣,我們才能在激烈的市場(chǎng)競(jìng)爭(zhēng)中脫穎而出、保持領(lǐng)先地位。
結(jié)語(yǔ)
“提取頭條HTML內(nèi)容失敗”的經(jīng)歷雖然令人沮喪,但它也為我們提供了寶貴的經(jīng)驗(yàn)與啟示。通過(guò)深入剖析技術(shù)困境的根源、積極探索新的解決方案、不斷強(qiáng)化跨領(lǐng)域合作并培養(yǎng)創(chuàng)新思維,我們完全有能力克服這一挑戰(zhàn)、實(shí)現(xiàn)信息獲取與處理的新突破。在未來(lái)的日子里,讓我們攜手共進(jìn)、迎接更加美好的未來(lái)!
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。