首页 > 解决方案 > 使用 CaptchImageResource 创建的 Captch 图像不会立即与其余网页内容一起显示,而是在大约 5 秒延迟后显示

问题描述

我正在使用 Apache NetBeans IDE 11.3、Wicket 9.0.0、JDK 11、Payara 服务器、Java EE 8 web。

网页上的验证码图像不会立即与其他页面内容一起显示,而是在大约 5 秒延迟后显示。单击刷新链接,显示新的验证码图像,延迟约 5 秒后再次显示。

以下源代码显示了我为使用 CaptchaImageResource 而编写的简单代码。我想用我的挑战文本而不是随机生成的文本来测试 CaptchaImageResource。

    Image captchaImage = new NonCachingImage("captchaImage", new CaptchaImageResource() {
        @Override
        protected byte[] render() {
            getChallengeIdModel().setObject("MyText1010");
            super.setLastModifiedTime(Instant.now());
            return super.render();
        }
    });
    captchaImage.setOutputMarkupId(true);
    captchaImage.setOutputMarkupPlaceholderTag(true);
    add(captchaImage);
    Image refreshImage = new Image("refreshImage",
        new PackageResourceReference(CaptchaPage.class, "refresh.png"));
    AjaxLink refreshLink = new AjaxLink("refreshLink") {
            @Override
            public void onClick(AjaxRequestTarget art) {
                captchaImage.setImageResource(new CaptchaImageResource() {
                    @Override
                    protected byte[] render() {
                        getChallengeIdModel().setObject("SomeText1234");
                        super.setLastModifiedTime(Instant.now());
                        return super.render();
                    }}
                );
                art.add(captchaImage);
            }            
    };
    add(refreshLink);

有没有人遇到过这个问题?

谢谢

拉贾尼

标签: wicket

解决方案


推荐阅读