目錄
鑰匙要點
>節點服務器中最重要的路由是郵政請求,它允許我們與演示幻燈片進行交互。該路線如下所示。
on {x}秘密醬
>在{x} logs
安全性呢?
結論
代碼
>
是的,您可以在沒有事先編程知識的情況下學習JavaScript。但是,對HTML和CSS與JavaScript合作以創建交互式網頁時,對HTML和CSS有一個基本的了解是有益的。在線有許多可用的資源,包括教程,視頻和交互式編碼平台,可以幫助您從頭開始學習JavaScript。
> javascript?
可以使用JavaScript來創建動畫嗎?用於在網頁上創建動畫。隨著時間的流逝,它可以更改HTML元素的CSS屬性,從而創造動畫的效果。 JavaScript還提供了requestAnimationFrame方法,該方法是專門設計用於創建光滑,瀏覽器優化的動畫的。
首頁 web前端 js教程 使用JavaScript和{X} - sitePoint控製網頁

使用JavaScript和{X} - sitePoint控製網頁

Feb 22, 2025 am 09:20 AM

使用JavaScript和{X}  -  sitePoint控製網頁

鑰匙要點

  • 作者使用遠程控制HTML演示文稿的示例演示瞭如何使用Android設備將遠程說明發送到實時網頁。 >
  • 使用的技術堆棧包括{x} app,node.js,express,socket.io,deck.js和heroku。 JavaScript庫
  • > socket.io,啟用服務器和客戶端之間的實時通信,這對於對來自Android設備的信號的實時響應至關重要。 具有JavaScript API的On {X}應用程序允許控制Android設備,並響應諸如傳入的文本消息,GPS位置,電池壽命等事件。這是在發掘時用於發送服務器請求的。
  • >
  • 作者警告說,該方法不安全,並建議為任何通用的任何東西添加一層安全性。
  • >
  • >我丟了手機。我把它留在購物中心的沙發上,然後回來發現它消失了。有人通過可怕的偷竊藝術被送給了新手機。我通過網絡將JavaScript代碼遠程發送到我的手機,該網絡每當我發短信時都會向我發送設備的坐標。我將其跟踪到一家Sizzler餐廳,直到他們關閉電話,然後它永遠消失了。我給自己買了一部新手機,但在一個功能強大的應用程序中看到了新的潛力,直到那時{x}}。 與我丟失的手機的恐怖故事相比,在本文中,我將分享該應用程序的不同用途。我想向您展示如何使用Android設備將遠程說明發送到實時網頁。我將使用遙控器控制HTML演示文稿的示例,但是可以擴展這些概念以執行許多有趣的事情。
  • 我們將使用以下技術:

一個Android設備

> on {x}

express
  • > socket.io
  • deck.js
  • > Heroku
  • 如果您沒有Android手機,請不用擔心!從理論上講,您可以使用任何其他設備可以使HTTP調用以相同的節點/socket.io sorcery的工作方式使用。本文假設讀者對node.js和javascript有一些了解,但是提供了源代碼供您參考。
  • 什麼是socket.io?
  • >在我們走得太遠之前,我將解釋socket.io的作用,因為它將顯示在接下來的幾個代碼片段中。 socket.io是一個JavaScript庫,可在服務器和客戶端之間實時通信。它允許您在服務器和客戶端上定義事件。例如,io.sockets.emit('eventThathathappened')創建了一個新事件,應用程序可以對此做出反應。為了對事件做出反應,只需設置這樣的事件處理程序 - socket.on('eventThathApped',function(){})。
  • >聊天程序是一個常見的示例socket.io應用程序。該服務器聽取來自任何客戶端的傳入消息,並在運行聊天應用程序的所有客戶端上立即顯示它們。我們將使用它在頁面啟動時立即從Android設備中響應信號。

    設置服務器

    >該演示的目錄結構如下圖所示。所有服務器端代碼都存儲在主JavaScript文件index.js中。前端HTML,CSS和JS存儲在公共文件夾中。

    >

    使用JavaScript和{X}  -  sitePoint控製網頁package.json文件定義了有關節點應用程序的依賴項和其他元信息。該文件的內容如下所示。請注意,依賴項中需要Express和socket.io模塊。

    >

<span>{
</span>  <span>"name": "androidremotecontrol",
</span>  <span>"version": "0.0.1",
</span>  <span>"dependencies": {
</span>    <span>"express": "3.1.x",
</span>    <span>"socket.io": "latest"
</span>  <span>},
</span>  <span>"engines": {
</span>    <span>"node": "0.10.x",
</span>    <span>"npm": "1.2.x"
</span>  <span>}
</span><span>}</span>
登入後複製
登入後複製
由於此演示旨在託管在Heroku上,因此我們需要一個procfile,其內容如下所示(非常簡單!)。

> 網絡:節點索引

節點服務器

in index.js的以下行用於導入socket.io並設置服務器的端口。

<span>var http = require('http'),
</span>    express <span>= require('express'),
</span>    app <span>= express(),
</span>    server <span>= require('http').createServer(app),
</span>    io <span>= require('socket.io').listen(server),
</span>    port <span>= process.env.PORT || 5000;
</span>
app<span>.use(express.bodyParser());
</span>
app<span>.get('/', function(request<span>, response</span>) {
</span>  response<span>.sendfile('public/index.html');
</span><span>});
</span>
app<span>.post('/nudging', function(request<span>, response</span>) {
</span>  io<span>.sockets.emit('nudge'+ request.body.nudged);
</span>  response<span>.json({success: true});
</span><span>});
</span>
app<span>.get(<span>/<span>^(.+)$</span>/</span>, function(req<span>, res</span>) {
</span>  res<span>.sendfile('public/' + req.params[0]);
</span><span>});
</span>
server<span>.listen(port, function() {
</span>  <span>console.log('Listening on ' + port);
</span><span>});
</span>
io<span>.configure(function() {
</span>  io<span>.set('transports', ['xhr-polling']);
</span>  io<span>.set('polling duration', 10);
</span><span>});</span>
登入後複製
為了使socket.io在Heroku上工作,我發現我必須添加這些額外的行來配置Xhr-Polling而不是依靠Websocket(您可能不需要這些對於環境)。這些行告訴服務器等待10秒鐘,然後再回答空的響應,如果它對GET或POST請求沒有特定響應。

>

io <span>= require("socket.io").listen(server),
</span>port <span>= process.env.PORT || 5000;</span>
登入後複製
控制演示幻燈片

此演示使用Deck.js,但只要它具有JS調用以在幻燈片之間移動,就可以隨意替換任何其他HTML演示模板。對於deck.js,只需下載並將其解壓縮到公共文件夾。
io<span>.configure(function () {
</span>  io<span>.set("transports", ["xhr-polling"]);
</span>  io<span>.set("polling duration", 10);
</span><span>});</span>
登入後複製
>

>節點服務器中最重要的路由是郵政請求,它允許我們與演示幻燈片進行交互。該路線如下所示。

>

>先前的代碼調用io.sockets.emit('nudgeleft')或io.sockets.emit('nudgeright'),具體取決於隨請求發送的JSON數據。這裡要提出的關鍵點是路線對JSON做出響應。如果您不這樣做,您的請求將超時,因為它們將坐著,等待服務器的響應。此時,您可以在本地運行服務器,或將其推到Heroku進行部署。

>配置socket.io

app<span>.post('/nudging', function(request<span>, response</span>) {
</span>  io<span>.sockets.emit('nudge'+ request.body.nudged);
</span>  response<span>.json({success: true});
</span><span>});</span>
登入後複製
>其他JavaScript已添加到public/js/magic.js中的演示文稿中,如下所示:

第一行連接到我們的socket.io服務器window.location.hostname。出於此演示的目的,我們將保持簡單,並將所有內容都放在一個域上。兩個事件處理人員會收聽任何要求向左或向右推動幻燈片的請求。如果注意到這些,我們會運行Deck.js的前期或下一個功能以移動幻燈片。

on {x}秘密醬

> on {x}是一個Android應用程序,它允許您通過JavaScript API來控制Android設備,並響應傳入的文本消息,GPS位置,電池壽命等事件。在此演示中,我們將使用它在發行時發送這些服務器請求。

開始{x}

>

    >將應用程序下載到您的設備:https://www.onx.ms/#! downloadapppage。
  1. >在下載時,請訪問桌面瀏覽器上的https://www.onx.ms,然後使用您的Facebook帳戶登錄{x}(不用擔心,這只是用於在設備和設備之間同步代碼在{x})上。
  2. >您將被帶到{x}的儀表板。您可以轉到食譜以探索已經有興趣的令人興奮的代碼段,但是我們將直接研究本教程的自定義代碼。
  3. 單擊頁面左上角的寫代碼鏈接以提出代碼編輯器。
  4. 讓該窗口打開,我們將在其中添加一些代碼。 >
  5. >在{x}
  6. 上進行編碼
  7. >如上所述,{x}具有JavaScript API,可讓您在Android設備上調用並檢測許多事件。對於此演示,我們主要關注device.gestures.on方法。
>要做的第一件事是在{x}上打開代碼編輯器返回該窗口,您會看到“規則名稱:”,將其重命名為更友好的東西,例如“ Nudge演示控制”。我的ON {X}代碼如下所示。請注意,您將需要用自己的服務器替換http://androidremotecontrol.herokuapp.com。

device.gestures.on組件用於設置事件處理程序。任何時候{x}檢測剩下的輕推,調用了裸體處理程序。我們有一系列代碼,基本上在手機上顯示了手機的通知。您不需要這個,但我使用它進行測試以確保檢測到輕推。該行的代碼如下所示。

接下來,我們在{x}的device.ajax方法上使用將JSON數據發送到服務器。請注意,數據類型被明確定義為JSON。沒有這個數據,數據無法正確發送。

>
<span>{
</span>  <span>"name": "androidremotecontrol",
</span>  <span>"version": "0.0.1",
</span>  <span>"dependencies": {
</span>    <span>"express": "3.1.x",
</span>    <span>"socket.io": "latest"
</span>  <span>},
</span>  <span>"engines": {
</span>    <span>"node": "0.10.x",
</span>    <span>"npm": "1.2.x"
</span>  <span>}
</span><span>}</span>
登入後複製
登入後複製
>當前,Onsuccess回調函數僅用於記錄HTTP響應成功。這將映射到響應。如果您覺得如此傾向,則可以在此成功呼叫中添加更多信息,以在{x}上提供更多數據。同樣,OnError回調用於記錄發生的任何錯誤。

>

接下來,我們以900,000毫秒的方式打開對這些手勢的檢測。當您首先啟用設備上的代碼時,這將運行。您可能希望此代碼運行超過900,000毫秒。我當前親自設置的方式是,每次設備的屏幕啟動時都會對其進行打開。因此,如果您想控制幻燈片,只需打開屏幕,您就有900秒的時間要瘋狂。根據我在開發過程中發現的內容,您必須為此功能提供時間限制。如果您找到另一種方法,請在評論中告訴我。我很想更新它。

>更新代碼以匹配您的服務器地址,並且已經準備就緒,請單擊“保存並發送到電話”以通過網絡將其發送到手機。從那裡開始,通過演示文稿打開您的URL,打開Android設備的屏幕,然後嘗試左右輕拍。如果一切順利,您會看到幻燈片來回切換!

>在{x} logs

上查看

>如果您想在{x}上查看日誌文件,則可以在Android手機上打開應用程序,選擇添加的規則,然後選擇“查看日誌”。另外,當您登錄您的規則頁面,選擇規則並單擊“日誌”選項卡時,您可以在{x}網站上的網站上看到它們。

安全性呢?

此方法在任何方面都不安全。如果其他任何人都算出您的演示文稿地址以及您要發送的帖子請求,他們可以輕鬆地將幻燈片從世界各地的任何地方切換。為此,您想到了與socket.io和{x}有關的任何其他想法,請記住,您需要在某個地方添加一層安全性,以使其在某個地方過於通用。

>

結論

這個演示背後的想法是表明,使用JavaScript,socket.io和一個漂亮的Android應用程序,您可以使用手機以多種方式來影響網頁。閃爍的演示幻燈片左右只是開始。您可以根據位置,是否正在運行應用程序,電池用完了,可以更改網頁顯示的內容。 D很高興聽到它。出去並編碼一些內容!

代碼

>該演示的所有代碼都已啟動,並在GitHub上可用。我的跑步版本也可以在Heroku上找到。

>

經常詢問有關使用JavaScript控製網頁的問題(常見問題解答)

> JavaScript在控製網頁中的作用是什麼?這是一種編程語言,可讓您在網頁上實現複雜的功能。當網頁是靜態的,即顯示靜態信息時,可以使用JavaScript使頁面更具互動性。它可以響應用戶操作,創建動態內容,控制多媒體,動畫圖像等等。 JavaScript在用戶的計算機上運行,​​使頁面加載更快並減少服務器上的負載。

>

>我如何在網頁中使用JavaScript?

javascript可以直接使用HTML嵌入HTML中<script>標籤或使用<script>標籤中的SRC屬性在外部鏈接。該腳本可以放置在HTML文檔的頭部或身體部分中,但通常建議將腳本放在身體部分的底部,以防止阻止頁面的渲染。 <ancy> <p >有什麼例子控製網頁的JavaScript? <h3 >JavaScript可以以多種方式控製網頁。例如,它可以更改HTML元素的內容和样式,在將其提交給服務器之前驗證形式的數據,操縱Cookie,創建彈出窗口等等。 JavaScript也可以用於創建複雜的應用程序,例如在線遊戲,交互式地圖和2D/3D圖形。創建動態和交互式網頁。 HTML用於網頁的結構,用於樣式的CSS和功能的JavaScript。 JavaScript可以在HTML文檔中訪問和更改所有元素和屬性。它還可以在網頁中更改所有CSS樣式。 </script>

>我可以在沒有事先編程知識的情況下學習JavaScript嗎?

是的,您可以在沒有事先編程知識的情況下學習JavaScript。但是,對HTML和CSS與JavaScript合作以創建交互式網頁時,對HTML和CSS有一個基本的了解是有益的。在線有許多可用的資源,包括教程,視頻和交互式編碼平台,可以幫助您從頭開始學習JavaScript。

>

> JavaScript僅用於Web開發?

對於Web開發,其使用不限於此。它也可以用於使用Node.js的服務器端編程,用於使用React Native和Ionic等框架的移動應用程序開發,以及使用Electron等框架創建桌面應用程序。

> javascript?

JavaScript是安全的,但是像其他任何編程語言一樣,如果不正確使用,則可以利用它。遵循最佳實踐以防止潛在的安全問題,這一點很重要。其中包括驗證和消毒用戶輸入,避免使用est()使用()以及定期更新和檢查您的代碼是否漏洞。

可以使用JavaScript來創建動畫嗎?用於在網頁上創建動畫。隨著時間的流逝,它可以更改HTML元素的CSS屬性,從而創造動畫的效果。 JavaScript還提供了requestAnimationFrame方法,該方法是專門設計用於創建光滑,瀏覽器優化的動畫的。

什麼是文檔對像模型(DOM)? HTML和XML文檔的編程接口。它代表文檔的結構,並允許像JavaScript這樣的編程語言操縱文檔的內容,結構和样式。

>

> JavaScript如何處理錯誤?

JavaScript使用組合處理錯誤嘗試,捕捉並最終陳述。 Try Block包含可能會出現錯誤的代碼,Catch Block處理錯誤,最後塊包含執行的代碼,無論是否丟棄錯誤。

以上是使用JavaScript和{X} - sitePoint控製網頁的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1269
29
C# 教程
1248
24
JavaScript引擎:比較實施 JavaScript引擎:比較實施 Apr 13, 2025 am 12:05 AM

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

JavaScript:探索網絡語言的多功能性 JavaScript:探索網絡語言的多功能性 Apr 11, 2025 am 12:01 AM

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

如何使用Next.js(前端集成)構建多租戶SaaS應用程序 如何使用Next.js(前端集成)構建多租戶SaaS應用程序 Apr 11, 2025 am 08:22 AM

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

使用Next.js(後端集成)構建多租戶SaaS應用程序 使用Next.js(後端集成)構建多租戶SaaS應用程序 Apr 11, 2025 am 08:23 AM

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

從C/C到JavaScript:所有工作方式 從C/C到JavaScript:所有工作方式 Apr 14, 2025 am 12:05 AM

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

JavaScript和Web:核心功能和用例 JavaScript和Web:核心功能和用例 Apr 18, 2025 am 12:19 AM

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

JavaScript在行動中:現實世界中的示例和項目 JavaScript在行動中:現實世界中的示例和項目 Apr 19, 2025 am 12:13 AM

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

See all articles