在取得资料之後,就要针对这些资料提出一个假设。如果对 ZK 的内部运作越了解,就越能够提出越正确的假设。
让我们概略地看一次先前提过的 AU reqeust 处理流程:
以上步骤可以简化为:
每次当你跟元件互动但结果不如预期的时候,就可以依次检查以上三个步骤有无正确执行:
当你提出一个对问题根因的假设之後,如果能够证明假设成立,恭喜你,已经发现问题根源,可以开始思考怎麽解决。如果假设无法证明或可反证它,那就代表先前的假设错误,你要回到前一步,重新提出另一个假设。如此反覆到找到根因为止。以下提供几个方法帮助你检查 ZK 运作是否正常来验证你的假设:
你可以透过 developer tool 来观察,以 Chrome 为例,按 F12 打开,选 Network 页,当你操作某个 ZK 元件而发出 event 时,会有一个路径为 zkau 的请求发出如下:
确认 AU 的确有发出之後,就该检查是否是你预期的事件发出,因着使用者与元件互动的行为,就应产生对应的事件,例如按了按钮就会发出 onClick
、打开 popup 就发出 onOepn
。如果没发出就该检查是否注册 listener 有问题。有关AU request 内容请参考前几天基本知识的文章。
如果使用者触发的事件,在服务器端有注册对应的倾听器 method,则 ZK 会呼叫该 method。要确认该 method 是否有被呼叫,可以印 log或透过 IDE 在 Java class 中设定中断点。
当 event listener 执行完後,其中所中呼叫的元件 API(主要是 setter)会产生相对的 AU 回应,这些回应内容包含对 client widget 的命令。因此不管是设定属性、新增/删除子元件,回应内容都会包含这些命令。你可以透过 developer tool 检查 AU 回应的内容是否符合你事件倾听器的实作。AU 回应的内容请参考前几天基本知识的文章。
>>: Day 25 - Code Injection 与 SQL Injection
自从改变自己的工作模式後,现在平均的案量是每天有计时的工作时数大概是三个小时,并且同时有三位长期配合...
上次把物件基本的移动以及跳跃都弄出来了,那麽改变物件的位置座标时,都要再额外乘上一个"Ti...
我好怕我起床已经明天了,所以先来打文吧。 废话不多说,开始今天的内容。 impl 由於我自己不太会使...
注意:List.of() 出现在JDK9.0以後,JDK8.0的广大用户是用不到的。 不知道看过这...
前言 CUDA Toolkits 是 NVIDIA GPU 卡的程序工具箱,可呼叫相关函数,在GPU...