.我们可以在下列哪个 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小时内与您取得联系。