不同的網站具有不同的功能,電商、視頻、社交、知識分享....
這些網站各具特色,而且差異較大,以社交和電商為例,一個是用于商品交易的,一個是用于社交的,因此,背后的架構體系,主要功能自然會有千差萬別。
因此,我們對不同網站功能增強的訴求是不同的,希望電商網站可以具有歷史價格對比、希望視頻平臺可以提供免費解析和下載功能等等。
所以,很難有一款功能能夠同時是用于不同的網站,起到對不同網站的增強作用。
但是,只有你想不到,沒有開發者做不到的,今天就來給大家介紹一個強大的工具--萬能命令,能夠是用于幾乎所有主流的網站,為各個網站提供實用的在線工具。
我對這款工具的評價:如果編輯器領域的VS Code、Chrome插件界的Tampermonkey。
它把各種各樣告知量的在線工具聚合到一起,然后,讓你訪問各種網站時能夠快速匹配到相應的在線工具。
如果覺得這個概述有些晦澀難懂,那么就再舉一個直白的例子。
它如同給各個網站穿了一件外套,當我們打開這個網站時,它會解析URL,然后列舉出是用于訪問網站的實用工具。這些工具包括但不限于商品歷史價格對比、視頻解析、音視頻下載、網頁在線翻譯、網頁長截圖、生成網址二維碼、生成短連接、在線轉PDF、查看網站排名、查看適合網站的油猴腳本等。
其中,有些在線工具適用于所有網站,例如,網站翻譯、網站截圖,有些在線工具個別網站,例如,視頻解析、商品歷史價。
查看適合網站的油猴腳本
這是最令我驚艷的一項功能,我之前就在一篇文章中介紹過油猴這款逆天的瀏覽器插件,它可以配合腳本實現各種各樣的功能。
那么,該如何找到適合的腳本卻成了一個很困難的問題。
我之前也只不過從眾多腳本中精選了5款推薦給大家,但是,肯定還會有很多強大、好用的腳本沒有被發掘。
而萬能命令就可以實現這項功能。
當我們使用萬能命令訪問某個網站時,它會列出查看當前站點可用的油猴用戶腳本(greasyfork),點擊之后你就可以看到適合于當前網站的熱門插件,通過這些腳本,可以毫不客氣的說,萬能命令+油猴的組合,讓瀏覽器已經無所不能了。
商品歷史價格
數據是一個非常容易引起人興趣,而且給人直觀感受的東西。
舉個例子,當你做匯報的時候,文字描述“效率得到大大提升”和“執行時間降低80%”帶來的效果是截然不同的。
購買物品也是,當我們在電商平臺購買一樣東西時,直接給出一個價格數字,很難給人心智上帶來強烈的感受。但是,如果把商品的歷史價格都給出,并且畫出一幅趨勢圖,那么就很清楚的能夠看出它的價格變動趨勢、生命周期,就知道,什么時候買這件商品最為合適。
音視頻解析
網絡上關于下載音視頻的方法、工具,數不勝數,要么是需要繁瑣的過程,要么不穩定。
萬能命令可以說是我遇到過最為輕量化、最為簡單的一種音樂下載方案。
只需要找到酷狗、QQ等音樂平臺的音樂鏈接,加上萬能命令的前綴,就可以列舉出適合這個URL的在線工具。這時候,你會發現它會列舉出各種下載工具,點擊其中一個就可以跳轉到下載鏈接,這樣就可以輕松下載音視頻。
百度文庫下載
百度文庫有很多有價值的材料,尤其是對于在校學生,各種練習題、電子書、課件??墒?,凡是好一些的資料,都無法免費下載。
因此,關于百度文庫下載的工具也是層出不窮。當然,其中也有一些不錯的,比如我之前用過的冰點文庫下載器就很好用。
但是,萬能命令讓這件事情變的更加簡單。只需要一個命令,就可以列舉出所有適合百度文庫的在線工具,通過這些工具就可以輕松下載你想要的材料。
短視頻下載
在各種短視頻、知識分享平臺都會有各種各樣的小視頻,如果你想下載這些小視頻,萬能命令也可以提供強有力的幫助。
一個命令,就可以列舉出一些強大的在線工具,這些工具支持CNTV、新浪、搜狐、爆米花、小咖秀、微博視頻、樂視網、56、芒果TV、知乎、網易公開課/音樂、頭條、西瓜、優酷/土豆、音悅臺、秒拍等上百個網站。
前面介紹了這么多,估計很多同學早已經急不可待,這款工具到底該怎么使用呢?
首先說一下,無論你是iOS、mac還是Android、Windows用戶,都不用擔心,它可以支持所有平臺,可以在Windows、mac、Linux、Android、iOS全平臺下運行,換句話說,只要你有瀏覽器,就可以使用。
萬能命令的使用有兩種方式:
方式1:命令
這種方式非常簡單,只需要一個命令即可。
使用方法:在你訪問的網址前面加上wn.run/ 即可。
舉例:wn.run/https://item.jd.com/100006546527.html
這樣就可以列出所有適合這個網站的在線工具。
方式2:書簽腳本
如果,你是在PC瀏覽器中使用,可以訪問萬能命令網站[1],找到拖動本按鈕到書簽欄,把這個腳本拖動到書簽欄就可以了。
如果是在移動端使用,可以手動添加一個書簽,書簽名稱可以自定義,并在書簽的網址項里輸入下面的代碼,
javascript:(function(){window.open("https://wanneng.run/f/#"+document.location.href)})()
然后,當訪問任何網站時,只需要點擊一下書簽欄的萬能命令書簽即可。
這兩種不同的方式都非常簡單,可以根據個人的使用偏好進行選擇。
JavaScript中,函數節流(Throttle)和防抖(Debounce)是兩種常見的技術,用于限制函數的調用頻率。它們在處理高頻事件時非常有用,比如鼠標滾動、輸入框輸入等。
函數節流是指限制函數在一定時間內只能被調用一次。以下是一個簡單的函數節流示例:
// 定義一個節流函數
function throttle(fn, delay) {
let canRun = true;
// 延遲執行函數
return function() {
if (canRun) {
fn.apply(this, arguments);
canRun = false;
setTimeout(() => {
canRun = true;
}, delay);
}
}
}
// 使用節流函數
const throttledFunction = throttle(() => {
console.log('函數被調用');
}, 1000);
// 每隔 1 秒調用一次 throttledFunction
setInterval(throttledFunction, 1000);
在上述示例中,throttle函數接受一個要限制的函數fn和延遲時間delay。它返回一個新的函數,該函數會在每次調用時檢查canRun變量,如果為真則執行原函數fn ,并將canRun設置為假。然后使用setTimeout函數在delay毫秒后將canRun重新設置為真。
通過這種方式,即使在短時間內頻繁觸發事件,函數也只會在一定時間間隔內被調用一次,從而達到節流的效果。
函數防抖是指在事件被連續觸發時,只有在一定時間內沒有再次觸發事件時,才會執行函數。以下是一個簡單的函數防抖示例:
// 定義一個防抖函數
function debounce(fn, delay) {
let timer;
// 清除定時器
return function() {
clearTimeout(timer);
timer = setTimeout(() => {
fn.apply(this, arguments);
}, delay);
}
}
// 使用防抖函數
const debouncedFunction = debounce(() => {
console.log('函數被調用');
}, 1000);
// 頻繁觸發 debouncedFunction
document.addEventListener('scroll', debouncedFunction);
在上述示例中,debounce函數同樣接受一個要限制的函數fn和延遲時間delay。當事件觸發時,它會清除之前設置的定時器,并重新設置一個定時器。只有當定時器超時且在這段時間內沒有再次觸發事件時才會執行原函數fn 。
函數防抖通常用于避免在短時間內頻繁執行某個函數,例如搜索框的自動完成功能。
選擇使用節流還是防抖取決于具體的場景需求。如果希望在一段時間內限制函數的調用次數,例如限制按鈕的點擊頻率,那么函數節流可能更適合。如果希望在連續觸發事件后延遲執行函數,例如輸入框的實時搜索,那么函數防抖可能更合適。
此外,還可以根據性能和用戶體驗來選擇。函數節流相對來說更簡單,性能較好,但可能會導致某些操作的延遲。而函數防抖可以避免不必要的頻繁執行,但可能會在延遲期間丟失一些觸發事件。
在實際應用中,可以根據具體情況選擇合適的技術,或者結合使用這兩種技術來滿足不同的需求。
介紹
福哥今天要給大家講講編程里的重頭戲——函數(function),有了函數,程序才是程序,為什么這么說呢?因為如果沒有函數語法,所有重復工作(包括類似工作)都要重復編寫代碼,那樣就失去了編程的價值。打個比喻說:如果程序沒有函數,就好像做數學題沒有公式一樣,每次做類似的題目的時候,都要從頭去用最原始是方法進行解題,這是不可想象的。
所以說,有了函數,我們編寫的程序才可以越做越大,我們才可能做出大型程序。當然,如果要做超大型程序,還需要學會對象(class)才行
在c/c++里是支持函數的,在php里也是支持函數的,不過java是純粹的OOP架構是沒有函數的
函數可以理解為一個公式,包含若干未知數(參數),未知數給了參考值,其結果(返回值)自然就得出來了,其語法如下
returnValue functionName (argument1, argument2, argument3 ... argumentN)
函數包括函數聲明和函數定義兩個部分,聲明就是定義函數名稱、參數、返回值,定義就是實現函數里程序邏輯
函數聲明
函數聲明的意思就是只定義函數的名稱、參數、返回值,而不去編寫函數里面的程序邏輯,這在c/c++里有特定的意義,c/c++編程包括 .h(頭文件)和 .cpp(程序文件),函數聲明寫在頭文件里,函數定義寫在程序文件,在發布程序庫的時候函數定義是編譯成二進制的,只能依賴頭文件里的函數聲明告訴使用者函數是什么樣的
函數定義
函數定義的意思就是在做好函數聲明之后開始編寫函數里面的程序邏輯,函數定義也包括函數名稱、參數、返回值,這在c/c++和php里都是一樣的
c/c++示例
定義了addCapacityToFuge,用來輸出一句話,再將capacityCont加一
int addCapacityToFuge(const char* capacity, int capacityCount) {
// print
cout << "福哥會寫" << capacity << "編程代碼" << endl;
// count
capacityCount++;
return capacityCount;
}
int main()
{
int capacityCount;
capacityCount = 0;
capacityCount = addCapacityToFuge("C/C++", capacityCount);
capacityCount = addCapacityToFuge("Java", capacityCount);
capacityCount = addCapacityToFuge("PHP", capacityCount);
cout << "福哥會" << capacityCount << "種編程語言!" << endl;
return 0;
}
php示例
定義了addCapacityToFuge,用來輸出一句話,再將capacityCont加一
注意:這里php的函數定義語法稍有不同,除了沒有參數類型和返回值類型外,還需要在函數名稱前面增加function關鍵字,這有助于php解析器的執行效率
function addCapacityToFuge($capacity, $capacityCount) {
// print
print "福哥會寫" . $capacity . "編程代碼\n";
// count
$capacityCount++;
return $capacityCount;
}
$capacityCount = 0;
$capacityCount = addCapacityToFuge("C/C++", $capacityCount);
$capacityCount = addCapacityToFuge("Java", $capacityCount);
$capacityCount = addCapacityToFuge("PHP", $capacityCount);
print "福哥會" . $capacityCount . "種編程語言!\n";
函數參數構成了函數的價值重要的組成部分,如果沒有參數,函數所做的事情是完全不變的,有了參數就可以使函數完成類似缺又不完全相同的事情
函數參數個數
函數參數就是一個一個的變量定義,一個函數理論上可以有無限多個參數
函數參數類型
函數參數的類型和我們編程時候定義一個變量是基本一樣的,每一個參數需要不同的名字,每一個參數需要給定參數類型,但是php這種弱類型語言不需要指定參數類型
函數參數傳入方式
這個比較難理解,函數傳入方式有兩種,一種是復制傳遞(默認),另一種是引用傳遞
復制傳遞
復制傳遞是默認傳遞方式,就是我們傳入的變量在傳入函數的一瞬間會被自動克隆一份,如果參數在函數里面被修改了,不會影響調用函數程序代碼里的變量的值
引用傳遞
引用傳遞和復制傳遞相反,就是我們傳入的變量在傳入函數的一瞬間不會被自動克隆,如果參數在函數里面被修改了,調用函數程序代碼里的變量也會變化
函數在執行完成后可以返回一個變量給調用這個函數的代碼使用,這個返回的的變量就是函數返回值
函數返回值類型
函數返回值的類型和我們編程時候定義的一個變量是基本一樣的,需要給定返回值類型,但是php這種弱類型語言不需要參數類型
這個作用域比較抽象,打個比喻說:一段代碼里會有很多的變量,如果把這些變量當作人的話,就是一群人在一個空場里,在這個空場里每個人都可以找到每個人,人可以被找到的范圍就是這個人的作用域;函數假設是一個商場,商場大門就是調用函數的點,在空場里的人商場里是看不到的,商場里的人在空場也看不到,所以商場是另一個作用域
函數定義的作用域僅僅是函數定義里面的程序代碼,它和函數調用的作用域是不通的,簡單說就是:在函數調用的地方定義的變量在函數定義里面是無法使用的,反過來也是一樣的,在函數定義里定義的變量在函數調用的地方也無法訪問到
注意:在函數內調用另一個函數,或者調用函數自己,一樣是不同的作用域
函數就是一個處理一些事情的獨立程序代碼,可以傳入函數參數來實現類似事情的處理操作,可以通過函數返回值來講處理結果帶回到調用函數的程序使用
有了函數,我們就可以編寫較為大型的程序了
https://m.tongfu.net/home/35/blog/512757.html
*請認真填寫需求信息,我們會在24小時內與您取得聯系。