我有一个用Perl编写的Web应用程序,它使用Ajax来查询MySQL数据库。在Mac和Win上的Firefox,Mac上的Safari和Win / IE / Edge上它完美运行。在Mac或Win上的Chrome中,Ajax会返回一个值,但该值几乎会立即消失。
工作流程是用户输入电子邮件用户名和Javascript" onKeyUp"功能启动Ajax。如果返回的结果消失,如果我只是退回输入用户名的一个字符,然后重新输入,结果会再次显示,并且不会消失。
它并不一致,但大约80%的时间都会发生。
此处是问题视频的链接"在行动":
https://haverford.box.com/s/6a3pqetbv1gt6mktzunx7ptuory3yduv)
您可以在视频中看到输入的第一个用户名会显示,然后消失。我在用户名的一个字符上退格,然后名称重新出现并粘住。接下来的两个用户名都没有遇到问题,但第四个也是最后一个用户名都没有。再次,当我删除并重新输入用户名的最后一个字符时,名称又回来了。
另一件可能扮演角色的事情(虽然我不这么认为)是当输入用户名时,另一个Ajax查询会查看用户是否拥有"监督组织,&# 34;如果是,则显示包含所有该人组织的下拉菜单。如果此人没有,则会显示一行,其中包含一个复选框,用于请求新的监督组织。
我不知道这个显示的新行是否会导致问题
似乎问题是在stackoverflow上报告此问题:
AJAX response shows up, then disappears in Chrome (July 2017)
我已尝试过"转换:translateZ(0);"在上面的链接中提到的修复,虽然我不确定我知道要将其添加到页面的哪个元素。我已经尝试了tr,th,td和输入,但没有人解决它。
我真的很挣扎,所以任何帮助都会受到赞赏!
谢谢!
P.S。我应该根据上面的stackoverflow链接上的注释添加,我尝试做一个CMD +然后CMD - 放大然后放出,无论我走哪一种方式,它都会重新出现结果。这让我觉得我需要做一个"重绘"或者"回流"在用户输入用户名并返回结果后稍微延迟一段时间后,或者网页上的某些内容。我尝试了大约30种不同的方式,但没有一种方法有效。不过,我可能会错误地使用javascript,所以如果有人能提供一种非常简单的方法来重绘屏幕,我会非常感激!