天道酬勤,学无止境

在客户端/服务器编程中使用threepenny-gui/reactive(using threepenny-gui/reactive in client/server programming)

问题

我试图弄清楚如何使用 Haskell Threepenny-gui 及其反应性功能来编写一个程序,让

  • 用户从列表框中选择一个项目
  • 将选择发送到外部服务器
  • 从服务器获取结果列表
  • 用结果填充列表框
  • 重复

看来我需要使用HandlernewEventregister来完成上述操作。 如果有人能指点我一些现有的代码来做类似上面的事情,那就太好了。

我发现最接近的是GameThing.hs -gui samples目录中的 GameThing.hs (但它不使用register )。

更新:

我在问我是否应该使用HandlernewEventregister --- 如果是的话,对这些函数进行一些说明或示例。

另外,要清楚的是,大局是:

browser  --> threepenny-gui (on localhost) --> backend server (anywhere on network)
         <--                               <--

换句话说,我需要做一些 IO(基于用户选择)然后显示该 IO 的结果。

更新:这是我的解决方案(基于@Taldykin 的回应):https://github.com/haroldcarr/rdf-triple-browser/tree/master/haskell/src

回答1

在此处输入图片说明

这是一段代码。 稍后我会添加说明。

{-# LANGUAGE LambdaCase #-}
import Graphics.UI.Threepenny as UI


main :: IO ()
main = do
  (evFillList, doFillList) <- newEvent
  initialList <- valuesSupply ""
  behFillList <- stepper initialList evFillList

  startGUI defaultConfig $ \win -> do
    list <- ul
    sel <- listBox
        behFillList
        (pure Nothing)
        (pure $ \it -> UI.span # set text it)

    getBody win #+ [grid [[element list, element sel]]]
    setFocus $ getElement sel

    on selectionChange (getElement sel) $ \case
      Nothing -> return ()
      Just ix -> do
        items <- currentValue behFillList
        let it = items !! ix
        liftIO $ valuesSupply it >>= doFillList
        element list #+ [li # set html it]
        setFocus $ getElement sel


valuesSupply :: String -> IO [String]
valuesSupply x = return [x ++ show i | i <- [0..9]]

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • using threepenny-gui/reactive in client/server programming
    I am trying to figure out how to use Haskell threepenny-gui with its reactive functionality to write a program that lets the user select an item from a listBox send the selection to an external server get back a list of results from the server populate the listBox with the results repeat It seems I will need to use Handler, newEvent and register to do the above. If someone could point me to some existing code that does something like the above that would be great. The closest I have found is GameThing.hs in the threepenny-gui samples directory (but it doesn't use register). UPDATE: I am asking
  • Java中用于对Web应用程序进行编程的不同技术如何协同工作?(How do the different technologies used for programming webapplications in Java work together?)
    问题 我想使用Java开发Web应用程序。 但是我很困惑所有这些不同的技术是什么以及它们如何协同工作: HTTP 的HTML 的CSS Java脚本 jQuery的网络容器小程序 JSP JSTL 表达语言(EL) 在网上可以找到关于这些主题的大量资源,并且每个主题似乎都需要阅读几本书才能理解。 您可以解释这些技术,以便在开始开发Web应用程序时对它们有一个基本的了解吗? 回答1 请注意,此说明的目的是为了提供一般理解,而不是检查每个主题的所有细节。 有经验的用户肯定会发现似乎“过于笼统”的观点,但不要让新用户感到困惑。 每个主题中都提供了用于进一步阅读的链接。 让我们从基本的基础开始。 您需要了解网页如何进入您的计算机,才能了解以下所有技术。 HTTP HTTP代表超文本传输​​协议。 它描述了浏览器如何与Web服务器通信以检索其内容(网页)。 网页存储在服务器上,浏览器需要一种方法来告诉服务器它想要获取哪个网页。 另一方面,服务器需要告知浏览器是否找到了所请求的资源,并将此信息发送给浏览器。 浏览器将请求发送到服务器。 该请求包括以下几个部分: URL,例如“ https://stackoverflow.com/questions/ask”,因此服务器知道要传递哪个页面。 HTTP方法。 最常见的是get ,它表示浏览器要检索信息(例如单个页面或Web搜索),而post则是发布
  • Javascript和PHP之间的区别(Difference between Javascript and PHP [closed])
    问题 在这里很难说出要问什么。 这个问题是模棱两可,含糊不清,不完整,过于宽泛或夸张的,不能以目前的形式合理地回答。 如需帮助澄清此问题以便可以重新打开,请访问帮助中心。 9年前关闭。 PHP和Javascript有什么区别? 我知道一个是服务器端脚本,另一个是浏览器端。 但是我要问的是,使用Javascript可以显示警报消息,我也可以简单地使用PHP来执行警报消息,而无需使用任何功能或使用if-else组合。 那么PHP和Javascript是排他性的吗,比如如果我使用一个,那么就不应该使用另一个,或者? 回答1 什么是差异黑白PHP和JavaScript 大致类似于英语和德语之间的区别。 他们可以表达大致相同的内容,但是表达方式却有所不同,在德国使用英语的人会比在英格兰使用德语的人多。 我知道一个是服务器端脚本,另一个是浏览器端 并不真地。 PHP是一种编程语言。 它通常用于服务器端编程,但也用于一般编程中。 JavaScript是一种编程语言。 它是唯一一种在浏览器中运行具有本地支持水平的语言。 它具有各种各样的服务器端实现(包括Node和ASP)。 它是Windows脚本宿主可以使用的语言之一。 等等。 还有许多其他语言也可以用于服务器端Web编程(C#在ASP.NET中很流行,我非常喜欢Perl,Python和Ruby的支持者很多,Java拥有很强的支持者, 等等)。
  • 畅聊Java异步编程
    趁着阿里的“加多”大佬推出了自己的新书《Java异步编程实战》,我也来简单聊下自己对异步编程的了解吧。 我是如何接触到异步编程的呢? 目前,我其实是一个刚入职场不久的年轻人,对于异步编程的了解和使用有限。在实际的工作中使用最多的异步编程,就是创建一个线程池来执行一个异步任务,使得主线程可以继续往下执行,不被阻塞。那么,我是如何接触到异步编程技术的呢? 一切还得从3年前,那个“腥风血雨”的校园招聘说起。相信大多数的小伙伴都是从接触Java并发编程开始的,当然我也不另外。在校园招聘的时候,为了应对面试官,通过面试环节,我对JUC并发包中的内容进行了比较详细的背诵,对于一些知识点都“朗朗上口”,就问你强不强? 在校园招聘期间,我对线程池有了一定的理论了解,知道线程池可以执行一些异步任务,并且对于Future可以用来获取异步任务的执行结果也都有所耳闻。在面试期间,我也会给面试官进行解析(背诵)这些知识点,嘿嘿。 工作之后,都在什么场景下使用异步编程呢? 其实吧,我在实际工作中需要使用异步编程的场景不太多,一般情况下我们所执行的任务还是比较重要的,所以都要求同步来执行(不知道是不是技术不够,导致影响了效率都不清楚,尴尬.jpg)。 工作中,使用异步编程的场景大概就是客户端请求服务端一个接口,服务端做不到在短时间内返回该结果。所以,服务端启动了一个异步任务(线程)去执行该请求的具体任务
  • 套接字编程-为什么即使在服务器接受了连接之后,Web服务器仍然使用监听端口80与客户端通信?(socket programming - why web server still using listen port 80 to communicate with client even after they accepted the connection?)
    问题 通常,Web服务器正在侦听通过端口80进行的任何传入连接。因此,我的问题是,套接字编程的一般概念是否应该是端口80用于侦听传入的连接。 但是,在服务器接受连接之后,它将使用另一个端口(例如端口12345)与客户端进行通信。 但是,当我查看电线仓库时,服务器在通信过程中始终使用端口80。 我在这里很困惑。 那么,如果https://www.facebook.com:443,它每秒具有成千上万的连接该怎么办。 一个端口可以处理这么大的流量吗? 回答1 一个特定的套接字由一个5元组(即5个特定属性的列表)唯一标识。这些属性是: 源IP地址目的IP地址源端口号目的端口号传输协议(通常为TCP或UDP) 对于同时打开的套接字,这些参数必须唯一。 在TCP中,您可能会感到困惑的是客户端发生的情况与服务器端发生的情况。 不管有什么应用程序协议(HTTP,FTP,SMTP等),TCP的行为都相同。 当您在客户端打开一个套接字时,它将为新的传出连接选择一个随机的高编号端口。 这是必需的,否则您将无法在同一计算机上打开同一服务器的两个单独的插槽。 由于这样做是完全合理的(并且在Web服务器中非常常见,例如在两个单独的选项卡中打开stackoverflow.com),并且每个套接字的5元组必须是唯一的,因此随机数port用作源端口。 但是
  • 客户端编程和服务器端编程有什么区别?(What is the difference between client-side and server-side programming?)
    问题 我有以下代码: <script type="text/javascript"> var foo = 'bar'; <?php file_put_contents('foo.txt', ' + foo + '); ?> var baz = <?php echo 42; ?>; alert(baz); </script> 为什么这不将“ bar”写到我的文本文件中,但提示“ 42”? 注意:此问题的早期修订版本明确涉及服务器上的PHP和客户端上的JavaScript。 当一种语言在客户端上运行而另一种语言在服务器上运行时,问题和解决方案的本质对于任何一对语言都是相同的(即使它们是相同的语言)。 当您看到有关特定语言的答案时,请考虑到这一点。 回答1 您的代码分为两个完全独立的部分:服务器端和客户端。 | ----------> HTTP request | +--------------+ | +--------------+ | | | | | | browser | | | web server | | (JavaScript) | | | (PHP etc.) | | | | | | +--------------+ | +--------------+ | client side | server side | <---------- HTML, CSS
  • 在 C# 中使用套接字编程接收消息不起作用(receiving message using socket programming in c# doesn't work)
    问题 我正在尝试使用套接字编程编写程序。 这个程序只是从客户端向服务器发送一条消息。 客户端代码是这样的: class Program { static void Main(string[] args) { TcpClient client = new TcpClient(); IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3000); client.Connect(serverEndPoint); NetworkStream clientStream = client.GetStream(); ASCIIEncoding encoder = new ASCIIEncoding(); byte[] buffer = encoder.GetBytes("Hello Server!"); clientStream.Write(buffer, 0, buffer.Length); clientStream.Flush(); } } 如您所见,客户端只是向服务器发送一个Hello服务器。 服务器代码是这样的: class Server { private TcpListener tcpListener; private Thread listenThread; public Server()
  • LabVIEW网络数据传输&远程控制编程与验证测试
    目的: 验证将采集卡采集的数据上传到网络中其他的计算机 (网络中其他的计算机可指在局域网中,或者在广域网上,本文所做测试都是指在广域网中实现。所以能够在广域网中实现的labview数据传输,就一定可以在局域网中实现。) LabVIEW实现网络数据传输的各种方法: 1.直接使用TCP选板的函数进行编程实现 2. 使用FTP选板的函数实现 3. LabVIEW特有的DataSocket技术实现网络中不同计算机不同应用程序之间的实时高速数据交换,使用DataSocket选板的函数实现 4. 使用共享变量引擎的方式实现 5. 网络流编程的方式实现,使用网络流选板的函数 6. 使用LabVIEW NXG Web模块,在不改变原有程序在以此模块编程方法编写新程序实现多地分布式共享数据 7. 其他方法 LabVIEW实现远程操作控制的方法: 在实现不同计算机不同应用程序网络通信的基础上,用编程的方法实现本地主机对远端主机程序的控制LabVIEW NXG Web模块能够用于​设计​和​部署​基于​Web​的​用户​界面​(UI),为​自动​化​测试​和​测量​应用​创建​远程​控制​和​监测​界面,​无​需​使用​其他​插​件​或​安装​程序​即可​在​任何​现代​Web​浏览​器、​平板​电脑​或​手机​上​运行​自​定义​用户​界面发布远程控制面板的方法(LabVIEW基本安装模块就可实现,
  • TCP/IP网络编程项目式教程(微课版)
    TCP/IP网络编程项目式教程(微课版)是由唐四薪编著、清华大学出版社于2019年11月出版的图书。 本书按照问题驱动、由浅入深的理念,以项目实例的形式介绍基于Visual C++的TCP/IP WinSock编程方法。 本书是微课版,提供了20个微课配套视频,在Visual Studio 2010环境中对书中的关键内容进行了演示和讲解,扫描书中相应位置的二维码即可观看。 TCP/IP网络编程项目式教程 书 名: TCP/IP网络编程项目式教程 作 者 唐四薪 ISBN 9787302536840 页 数 222 定 价 39 出版社 清华大学出版社 出版时间 2019年11月 全书共分13章,以项目实例的形式阐述了:网络编程概述、控制台版的TCP通信程序、Windows API版本的TCP通信程序、异步通信版的TCP通信程序、UDP通信程序、MFC版的TCP通信程序、文件传输程序、网络用户登录程序,TCP一对多通信程序、群聊软件、在线考试系统。 本书适合作为高等院校各专业“网络编程”等课程的教材,也可作为网络编程的培训类教材,还可供网络编程开发人员参考使用。 前言 TCP/IP 网络编程(俗称Socket编程),是针对TCP/IP层协议(如TCP、UDP)进行的网络编程。这是一种最传统的网络编程方式,许多互联网早期诞生的网络软件,如QQ
  • RESTful编程到底是什么?(What exactly is RESTful programming?)
    问题 RESTful编程到底是什么? 回答1 一种称为REST(代表性状态转移)的架构风格主张Web应用程序应使用最初设想的HTTP。 查找应使用GET请求。 PUT,POST和DELETE请求应分别用于突变,创建和删除。 REST支持者倾向于使用URL,例如 http://myserver.com/catalog/item/1729 但是REST体系结构不需要这些“漂亮的URL”。 带有参数的GET请求 http://myserver.com/catalog?item=1729 就像RESTful一样。 请记住,决不要将GET请求用于更新信息。 例如,用于将商品添加到购物车的GET请求 http://myserver.com/addToCart?cart=314159&item=1729 不合适。 GET请求应该是幂等的。 也就是说,两次发出请求应该与一次发出请求没有什么不同。 这就是使请求可缓存的原因。 “添加到购物车”请求不是幂等的-发出两次请求会将该商品的两个副本添加到购物车。 在这种情况下,POST请求显然是适当的。 因此,即使是RESTful Web应用程序也需要其POST请求共享。 这摘自David M. Geary撰写的出色的《 Core JavaServer Faces》一书。 回答2 REST是Web的基础架构原理。 关于Web的神奇之处在于,客户端(浏览器
  • C#网络编程(Socket编程)
    文章目录 一、Socket网络编程1.Socket是什么?2.Socket本质3.Socket作用4.Socket的典型应用 二、网络传输(一)OSI网络七层模型(二)网络模型(三)IP地址和端口1.IP地址2.端口 (四)Socket/TCP五层网络模型(五)TCP和UDP1.UDP:2.TCP: 三、Socket/TCPTCP报文TCP三次握手TCP四次挥手 四、Socket编程(一)Socket编程方式(二)数据传输方式1. STREAM2.DGRAM (三)服务器端编写步骤(四)客户端编写步骤(五)案例 一、Socket网络编程 1.Socket是什么? 在计算机通信领域,Socket被译为“套接字”。它是计算机之间进行通信的一种约定或一种方式。通过Socket这种约定可以接收到其他计算机的数据,也可以向其他计算机发送数据。 2.Socket本质 是编程接口(API),对于TCP/IP的封装,TCP/IP也提供了可供程序员做网络开发所用的接口 3.Socket作用 Socket的英文原意是“插座”,的意思,通常在计算机编程中称作套接字,可以用来实现不同虚拟机或不同计算机之间的通信 4.Socket的典型应用 (1)Socket的应用之一就是Web服务器和浏览器:浏览器获取用户输入的URL地址,向服务器发起请求,服务器分析接收到的URL请求,将对应的网页内容返回给浏览器
  • 开始使用客户端 - 服务器网络 [关闭](Getting started with client-server networking [closed])
    问题 关闭。 此问题不符合 Stack Overflow 准则。 它目前不接受答案。 想改善这个问题吗? 更新问题,使其成为 Stack Overflow 的主题。 2年前关闭。 改进这个问题 我是一名优秀的程序员,但我的网络经验为零。 基本上,我想进入客户端 - 服务器网络。 例如,我想尝试启动一个服务器进程,它允许客户端通过互联网连接并向所有其他连接的客户端发送 ping。 然后也许我会尝试开发一个简单的聊天客户端,或者一些简单的多人游戏,然后我会从那里开始。 我非常熟悉的可能有用的语言:Java、C++、C。 我该如何开始? 我想预先学习最佳实践,因此您可以推荐好的学习资源(例如书籍、在线材料等)会很棒。 编辑:我还应该研究某种虚拟机来模拟各种机器相互交互吗? 编辑 2:我已经提出了 50 代表的赏金。 到目前为止已经提出了一些很好的答案 - 不过我正在寻找更详细的答案,所以希望这会鼓励这一点。 例如,在比较不同学习方法的这类东西方面有经验的人的回答将非常有帮助。 谢谢! 我还能得到关于整个 VM 的一些反馈吗? 回答1 我更喜欢Java。 我将解释TCP: 基本概念是您必须在机器上运行“服务器”。 该服务器接受等待连接的客户端。 每个连接都通过一个端口(你知道,我希望......)。 始终使用 1024 以上的端口,因为低于 1025 的端口大部分时间是为标准协议(如
  • 如何使用Java套接字编程了解何时网络中断(How to know when network down using java socket programming)
    问题 嗨,我有一个问题,该如何检测网络何时脱机。 我的服务器和客户端在不同的计算机上。 但是通过局域网连接实际上我已经用Java编写了tcp套接字编程。 一旦服务器和客户端都连接好了,那么如果我写点东西并睡了10秒钟,那么我就拔掉了LAN电缆。 1分钟后,我插入了LAN电缆。 但是我知道事务可以像往常一样在服务器和客户端之间发生。 感谢Sunil Kumar Sahoo 回答1 如果我正确理解了您的问题,则需要能够快速确定网络运行缓慢还是完全瘫痪。 这不是一件容易的事。 这里有两种不同的情况。 您的源计算机或路径上的某些路由器都知道到目的地的路由存在永久性问题。 还是没有这种认识。 例如,如果将LAN电缆从源计算机(发送请求并等待响应的电缆)中拔出,网络驱动程序将意识到与世界的连接已断开。 它会立即通知您一个错误。 这是第一种情况。 另一方面,如果从目标计算机上拔下插头,则目标网关将不知道该计算机已关闭。 您的请求将在目标子网中发送出去,但是它们当然会被忽略。 这是第二种情况。 在远程故障(第二种问题)的情况下,您的TCP堆栈最终将确定目标计算机是否在通话。 但是,这需要几分钟。 我相信这是一个系统配置参数。 我知道的唯一解决方案是拥有异步的在线应用程序级协议和某种心跳消息,并具有合理的超时(秒)。 回答2 TCP将承受2分钟的连接丢失。 丢失的所有数据包都将重新发送。
  • Windows网络编程
    第一章 序言 我写这个专题的目的,一方面是为了通过对网络编程再一次系统的总结,提高自己的网络编程水平,特别是Windows下的网络编程水平。同时,我也希望,能为众多初学网络编程的人提供一点帮助,因为我开始学习网络编程的时候,能找到的资料就很少。当然,花钱可以买到翻译版本的书:) 首先向大家推荐一本很好的参考书,Network Programming for Microsoft Windows 2nd, 初学网络编程的时候我还不知道有这样一本好书,只是上各大论坛把能找到的网络编程方面的文章和代码下载下来,然后自己研究。后来看到别人推荐这一本书,下载了一个,看了感觉非常好,里面的内容写得很规范,条理也很清楚,英文好的朋友可以直接阅读,不然就只好去弄一本翻译好的来研究了。、 我试着从Windows编程的基础开始,一直到探索建立高性能的网络应用程序。我说过,我并不是以高手的身份写这本书,而是以和大家一起学习的心态学习网络编程,写书只是让自己的思路更清晰,以后还可以翻阅。所以,我不保证书中所有的内容都是绝对正确和标准的,有不妥的地方,还希望高手批评指正。 这本书是完全免费的,读者可以任意使用书中的代码。但是如果需要转载,请注明原作者和出处。如果有商业运作的需求,请直接和我联系。 第二章 Windows网络编程基础 这本书主要探索Windows网络编程,开发平台是Windows 2000
  • 客户端/服务器GKSession(Client/Server GKSessions)
    问题 我有一个已设置的应用程序,如果用户选择该设备作为服务器,它将在服务器模式下创建一个GKSession,如果选择cient,它将在客户端模式下创建一个GKSession。 此刻发生的事情是服务器正在正常发送数据,这只是包含服务器时间的字符串。 但是,问题开始了,当我已经有一个客户端连接到服务器,然后又连接了另一个客户端..问题是:第二个连接的客户端由于某种原因也连接到第一个客户端。 我希望能够不连接到其他客户端,而仅连接到服务器。 任何帮助都会很棒 回答1 您已经击中了头上的钉子: 奇怪的是,GK允许“任何对任何”模型。 从技术上来说,这是一个真正令人印象深刻的成就 但 !!! 意识到这是一个非常不寻常的选择,这一点非常重要。 在网络(对于游戏)中,您几乎总是需要“正常”的客户端-服务器模型。 在大约30年的时间里,关于使用普通的客户端-服务器“分支”模型进行网络连接的科学已经建立起来。 实际上,对于游戏编程而言,您肯定有99%的时间肯定会需要标准的客户端-服务器“轮辐”模型。 这需要重复: (1)苹果公司制作GK时,创造了一种非常不寻常的“点对点”模式。 (2)在技术上令人震惊,但是, (3)实际上,这种新颖的P2P技术不会在非常典型的游戏网络编程中使用。 (4)非常令人困惑:所有文档都讨论了P2P模式。 这是令人困惑的,因为:如果您不熟悉网络编程,那会让您认为这是“正常的”
  • Haskell对Node.js的响应是什么?(What is the Haskell response to Node.js?)
    问题 我相信Erlang社区不会羡慕Node.js,因为它本身就进行非阻塞I / O,并具有将部署轻松扩展到一个以上处理器(Node.js甚至没有内置的功能)的方法。 有关更多详细信息,请访问http://journal.dedasys.com/2010/04/29/erlang-vs-node-js和Node.js或Erlang 那Haskell呢? Haskell是否可以提供Node.js的某些好处,即一种避免使用I / O而不使用多线程编程的干净解决方案? Node.js有很多吸引人的地方 事件:无线程操作,程序员仅提供回调(如Snap框架中一样) 回调保证在单个线程中运行:不可能出现竞争条件。 漂亮又简单的UNIX友好API。 奖励:出色的HTTP支持。 DNS也可用。 默认情况下,每个I / O都是异步的。 这样可以更轻松地避免锁定。 但是,回调中过多的CPU处理会影响其他连接(在这种情况下,任务应拆分为较小的子任务并重新安排)。 客户端和服务器端使用相同的语言。 (但是,我认为这一点没有太大价值。jQuery和Node.js共享事件编程模型,但其余部分却大不相同。我只是看不到如何在服务器端和客户端之间共享代码。在实践中很有用。) 所有这些都包装在一个产品中。 回答1 好的,因此,在观看了@gawi指向我的一些node.js演示文稿之后,我可以对Haskell与node
  • 使用客户端凭据流以编程方式在Azure AD中添加应用程序(Adding Applications programmatically in Azure AD using Client Credentials Flow)
    问题 为了与Azure API管理一起使用,我尝试以编程方式将应用程序添加到Azure Active Directory(AAD),在我的情况下,是使用Graph API。 我的情况如下:为了保护要使用Azure API管理进行管理的Web API,我想利用AAD的OAuth功能对身份验证和颁发JWT令牌进行繁重的工作,然后仅使用validate-jwt策略验证Azure API管理中一切正常。 这样做的好处是,我可以在后端服务中或多或少地省略身份验证。 只要我已经在Azure AD中为使用Web应用程序创建了一个应用程序,它就可以正常工作,但这必须从Azure门户手动完成。 Azure APIm不会自动执行此操作。 现在,我要做的是自动完成工作:我想将对APIm中的API的订阅委派给我正在编写的其他Web应用程序,然后从那里我要利用Graph API在Azure中创建应用程序AD并向API的应用程序授予权限。 我要做的第一件事是拥有第三个应用程序(我的服务应用程序),以拥有对Azure AD中Windows Azure Active Directory应用程序的完整应用程序权限。 这使我的应用程序可以使用Graph REST API访问AAD。 我设法使用client_credentials授予(从login.microsoft.com)获得访问令牌
  • 使用jQuery在IE中以编程方式触发事件(Programmatically triggering events in Javascript for IE using jQuery)
    问题 当IE中的用户触发事件时,该事件将被设置为window.event对象。 查看触发事件的唯一方法是访问window.event对象(据我所知) 如果通过编程方式触发事件(例如通过jQuery触发事件),则会在ASP.NET验证器中引起问题。 在这种情况下, window.event对象将存储最后一个用户触发的事件。 当以编程方式为附加了ASP.NET验证器的文本框触发onchange事件时,验证将中断,因为它正在查看触发了最后一个事件的元素,而该元素不是验证器所针对的元素。 有谁知道解决这个问题的方法吗? 看来这是一个可以解决的问题,但是从网上看,大多数人只是想办法忽略问题而不是解决问题。 要具体解释我在做什么: 我在一个文本框中使用jQuery时间选择器插件,该插件还具有2个与之关联的ASP.NET验证器。 时间更改后,我使用更新面板将其回发到服务器以动态地执行一些操作,因此我需要触发onchange事件以触发该文本框的回发。 jQuery时间选择器通过创建一个隐藏的无序列表进行操作,单击该文本框后,该列表将变为可见。 单击列表项之一时,将通过jQuery的change()方法以编程方式为文本框触发“ change”事件。 因为事件的触发器是一个列表项,所以IE会将列表项视为事件的源,而不是文本框,而是将其视为事件的源。 更改文本框后,我不太担心此ASP
  • 什么是通用网关接口(CGI)?(What is Common Gateway Interface (CGI)?)
    问题 CGI是通用网关接口。 顾名思义,它是所有内容的“通用”网关接口。 从名称来看,它是如此琐碎而幼稚。 我感到自己理解了,每次遇到这个词时都会感到。 但坦率地说,我没有。 我还是很困惑。 我是一位具有Web开发经验的PHP程序员。 用户(客户端)请求页面---> webserver(->嵌入式PHP解释器)---->服务器端(PHP)脚本---> MySQL服务器。 现在说我的PHP脚本可以从MySQL服务器,MATLAB服务器和其他服务器获取结果。 那么,现在PHP Script是CGI吗? 因为它的接口用于Web服务器与所有其他服务器之间? 我不知道。 有时他们称CGI为技术,而有时又称CGI为程序或其他服务器。 CGI到底是什么? /cgi-bin/*.cgi什么大不了的? 这是怎么回事? 我不知道服务器上的cgi-bin目录是做什么的。 我不知道他们为什么有* .cgi扩展名。 为什么Perl总是妨碍您。 CGI和Perl(语言)。 我也不知道这两个是怎么回事。 几乎所有时候,我都不断听到“ CGI&Perl”的组合。 本书是使用Perl进行CGI编程的另一个很好的例子。 为什么不使用PHP / JSP / ASP进行CGI编程呢? 我从未见过这样的事情。 C语言中的CGI编程让我感到非常困惑。 “在C中”? 严重地?? 我不知道该说些什么。 我很困惑。 “在C中”?
  • 【Java】网络编程之NIO
    简单记录 慕课网-解锁网络编程之NIO的前世今生 & 一站式学习Java网络编程 全面理解BIO/NIO/AIO 内容概览 文章目录 1、【了解】 NIO网络编程模型1.1、NIO简介1.2、编程模型1.3、网络编程三剑客 BIO & NIO & AIO1.4、BIO是什么1.5、BIO网络模型1.6、NIO网络模型猜想1.7、NIO网络模型1.8、NIO网络模型改进 2、【熟悉】NIO网络编程详解2.1、NIO核心类之Channel2.2、NIO核心类之Buffer2.3、NIO核心类之Selector 3、【应用】NIO网络编程实战4、【掌握】NIO网络编程缺陷5、【深谙】NIO总结5.1、NIO网络编程模型5.2、NIO网络编程详解5.3、NIO网络编程实战5.4、NIO网络编程缺陷 NIO是很重要的 网络编程 1、【了解】 NIO网络编程模型 1.1、NIO简介 姓名:Non-blocking I/O 或 New I/O 非阻塞IO 出生:JDK 1.4 JDK 1.4 及以上版本里提供的新API(New IO) 职务:高并发网络服务器支持岗 高性能和高并发场景使用 NIO是全新的输入输出标准库,作为原始I/O的补充。 IO和NIO的区别 原有的 IO 是面向流的、阻塞的,NIO 是面向块的、非阻塞的。 1.2、编程模型 模型:对事物共性的抽象 编程模型:对编程共性的抽象