.我們可以在下列哪個 HTML 元素中放置 Javascript 代碼?()
A.<script>
B.<javascript>
C.<js>
D.<scripting>
2.寫 "Hello World" 的正確 Javascript 語法是?()
A.("Hello World")
B."Hello World"
C.response.write("Hello World")
D.document.write("Hello World")
3.插入 Javacript 的正確位置是?()
A.<body>部分
B.<head>部分
C.<body>部分和<head>部分均可
4.引用名為 "xxx.js" 的外部腳本的正確語法是?()
A.<script src="xxx.js">
B.<script href="xxx.js">
C.<script name="xxx.js">
5.如何在警告框中寫入 "Hello World"?()
A.alertBox="Hello World"
B.msgBox("Hello World")
C.alert("Hello World")
D.alertBox("Hello World")
6.如何創建函數?()
A.function:myFunction()
B.function myFunction()
C.function=myFunction()
7.如何調用名為 "myFunction" 的函數?()
A.call function myFunction
B.call myFunction()
C.myFunction()
8.如何編寫當 i 等于 5 時執行一些語句的條件語句?()
A.if (i==5)
B.if i=5 then
C.if i=5
D.if i==5 then
9.如何編寫當 i 不等于 5 時執行一些語句的條件語句?()
A.if=! 5 then
B.if >< 5
C.if (i >< 5)
D.if (i !=5)
10.在 JavaScript 中,有多少種不同類型的循環?()
A.兩種。for 循環和 while 循環。
B.四種。for 循環、while 循環、do...while 循環以及 loop...until 循環。
C.一種。for 循環。
11.for 循環如何開始?()
A.for (i <=5; i++)
B.for (i=0; i <=5; i++)
C.for (i=0; i <=5)
D.for i=1 to 5
12.如何在 JavaScript 中添加注釋?()
A.' This is a comment
B.<!--This is a comment-->
C.//This is a comment
13.可插入多行注釋的 JavaScript 語法是?()
A./*This comment has more than one line*/
B.//This comment has more than one line//
C.<!--This comment has more than one line-->
14.定義 JavaScript 數組的正確方法是?()
A.var txt=new Array="George","John","Thomas"
B.var txt=new Array(1:"George",2:"John",3:"Thomas")
C.var txt=new Array("George","John","Thomas")
D.var txt=new Array:1=("George")2=("John")3=("Thomas")
15.如何把 7.25 四舍五入為最接近的整數?()
A.round(7.25)
B.rnd(7.25)
C.Math.rnd(7.25)
D.Math.round(7.25)
16.如何求得 2 和 4 中最大的數?()
A.Math.ceil(2,4)
B.Math.max(2,4)
C.ceil(2,4)
D.top(2,4)
17.打開名為 "window2" 的新窗口的 JavaScript 語法是?()
A.open.new("http://www.w3cschool.cn","window2")
B.new.window("http://www.w3cschool.cn","window2")
C.new("http://www.w3cschool.cn","window2")
D.window.open("http://www.w3cschool.cn","window2")
18.如何在瀏覽器的狀態欄放入一條消息?()
A.statusbar="put your message here"
B.window.status="put your message here"
C.window.status("put your message here")
D.status("put your message here")
19.如何獲得客戶端瀏覽器的名稱?()
A.client.navName
B.navigator.appName
C.browser.name
20.外部腳本必須包含 <script> 標簽。()
A.正確
B.錯誤
請把你的答案寫在留言區。^_^
是下一個大事件嗎?如果繼續發展下去,有可能。
在 2022 年 PyCon 美國大會期間,作為主題演講嘉賓之一的 Peter Wang 公布了 PyScript,一種在 HTML 中直接編寫 Python 腳本的方法。或許你不知道 Peter,但你可能聽說過 Anaconda,這是一種流行的開源的 Python 和 R 語言的發行版本,特別關注數據科學。Peter 正是 Anaconda 的 CEO 和聯合創始人。
換言之,PyScript 是由一家著名的科技公司開發的,這可能會保證它在不久的將來成為可行的方案。它在 Python 和 Web 開發者中受到了極大的關注,GitHub 上已有超過 10k 顆 Stars。然而,它是否能成為一個成功的、有競爭力的產品,取決于長期的時間和開發投入。目前,它還有一些已知的缺陷(將在最后討論)。
閑話少說,讓我們快速了解一下這個令人振奮的產品吧!
我們知道,HTML 文件是大多數網站最常見的元素。在創建網站時,我們的工作就是直接或間接地通過一些框架來編制 HTML 文件。在典型的 HTML 文件中,你會看到各種類型的標簽。例如,<head>定義了 HTML 頁面的元數據和關鍵信息,<title>是整個文檔的標題,而<h1>、<h2>等定義了不同級別的內容標題。
如前所述,PyScript 允許你在 HTML 中編寫 Python 腳本,它使用一個特殊的標簽py-script。在這個標簽中,你可以嵌入 Python 腳本。要了解它是如何工作的,可以創建一個 HTML 文件,其中包含以下代碼,并使用 Chrome 瀏覽器打開該文件。在 Chrome 瀏覽器中,你應該能夠看到類似下面這樣的內容:
作者截圖
在上面的代碼片段中,你可能已經注意到以下三個關鍵點:
這很酷,不是嗎?如果你不熟悉 Web 開發,但了解 Python,就可以使用 PyScript 嵌入任何有效的 Python 代碼。讓我們再看一個例子。
另一個 PyScript 示例(圖片由作者提供)
在這里,我們寫了一些需要計算的代碼,可以看到,腳本得到了正確的執行。
在編寫更復雜的代碼時,就需要使用第三方庫。在這種情況下,我們可以利用py-env標簽。你可能已經猜到的,env 是 environment 的縮寫。py-env標簽中列出了運行代碼所需的 Python 包。
你可能知道,許多數據科學家都使用 pandas 進行數據處理工作。讓我們看看下面的例子。
使用包的 PyScript(圖片由作者提供)
如你所見,我們在py-env標簽中指定了依賴項(即 Pandas),該標簽包含在head標簽中。如果頁面需要多個依賴項,可以在這里把它們全部列出:
<py-env>
- pandas
- matplotlib
- numpy
</py-env>
復制代碼
如你所見,在py-script標簽中,我們確實可以使用 Pandas 庫來創建一個DataFrame對象。然而,當我們把打印出來時就會發現,它是一個單行,而不是一個結構化的數據表。沒有一個適當的結構,我們就無法理解這些數據。幸運的是,我們可以使用write函數(下文會討論)。
除了 Python 中的標準打印函數print,作為腳本的一部分,PyScript 有自己的write函數,可以將數據發送到頁面上指定的 Web 元素中。請看下面的例子:
PyScript 寫函數 write(圖片由作者提供)
與之前的例子相比,上述代碼片段有兩個重大變化:
write函數不僅能夠打印表格,還能夠打印數字。下面的例子向你展示了我們如何使用matplotlib(一個流行的 Python 包,用于數據可視化)來顯示由 Python 創建的圖。
PyScript 打印圖(圖片由作者提供)
如你所見,write 函數以期望的方式顯示了圖。
Python 學習的最好方法之一是使用 REPL:讀取(Read)、求值(Evaluate)、打印(Print)和循環(Loop)。也就是說,使用一個交互式的 Python 控制臺,輸入一些代碼,Python 對其進行求值并打印適當的輸出,然后重復這個過程。Web 頁面也可以提供這樣的 REPL 環境,比如 Jupyter Notebook。
PyScript 可以使用py-repl標簽提供與此類似的東西。在這個元素中,你可以讓用戶自己編寫代碼,也可以以編程方式輸入代碼。請看下面的例子:
PyScript REPL(圖片由作者提供)
如你所見,上圖中有一個單元格,其中包括在py-repl標簽中指定的代碼。值得注意的是,單元格中的代碼可以引用我們之前在py-script標簽中定義的變量。一切看起來都很協調。
本文介紹的內容是現階段 PyScript 所能提供的主要亮點。它似乎是一個很有前途的產品,因為它提供了一個靈活的框架,讓 Python 程序員可以在沒有太多 Web 開發知識的情況下創建 Web 應用。然而,也有其他類似的成功的產品,因此,競爭會很激烈。
例如,如果我需要為自己的數據科學項目創建一個 Web 應用,我就會直接使用 Streamlit。它的功能已經相對成熟。請注意,雖然都與 Web 開發有關,但 PyScript 和 Streamlit 屬于不同的產品系。PyScript 應該更通用,因為它的目標是讓你可以在任何網頁上嵌入任何 Python 代碼,Streamlit 做不到這一點。
在 PyScript 為更多的人所接受之前,它有幾個問題必須解決。例如,Web 頁面的加載速度非常慢。如果你嘗試跟隨本教程運行代碼,可能就會注意到,在 Web 頁面的顯示會有一個明顯的滯后。
盡管如此,我還是覺得這個產品會繼續發展,我的信心主要來自于它的開發者——給我們帶來極好的 Anaconda 工具的 Anaconda 團隊。
本文最初發布于 Better Programming。
查看英文原文:Running Python Scripts on the Web Using PyScript
了解更多軟件開發與相關領域知識,點擊訪問 InfoQ 官網:https://www.infoq.cn/,獲取更多精彩內容!
$.ajax()是jquery封裝的底層使用xmlHttpRequest(ajax)請求遠程接口的方法,但要注意,可以通過修改dataType這個屬性的值,使用script類型請求遠程接口。如果是xml、html、json、text,則請求是xhr類型,如果是script、jsonp,則請求是script類型。
$.ajax({
type:"GET",
url:"http://localhost:9090/getMySeat", //訪問的鏈接
dataType:"json", //數據格式設置為jsonp
jsonp:"callback", //Jquery生成驗證參數的名稱
success:function(data){ //成功的回調函數
alert(data);
},
error: function (e) {
alert("error");
}
});
$.ajax({
type:"GET",
url:"http://localhost:9090/getMySeat", //訪問的鏈接
dataType:"jsonp", //數據格式設置為jsonp,或者為script
jsonp:"callback", //Jquery生成驗證參數的名稱
success:function(data){ //成功的回調函數
alert(data);
},
error: function (e) {
alert("error");
}
});
$(function (){
//頁面加載完畢執行,也可以放在點擊事件中執行
var script=document.createElement('script');
script.type='text/javascript';
// 傳參一個回調函數名給后端,方便后端返回時執行這個在前端定義的回調函數
script.src='http://localhost:8080/login?user=admin&callback=handleCallback';
document.head.appendChild(script);
})
// 回調執行函數
function handleCallback(res) {
alert(JSON.stringify(res));
}
你的贊和關注是對我最大的肯定,希望大家多多支持,謝謝大家。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。