Javascript 如何仅在JSP中执行Java代码后显示页面

Javascript 如何仅在JSP中执行Java代码后显示页面,javascript,jquery,html,jsp,Javascript,Jquery,Html,Jsp,jspindex.jsp包含java代码,可以从数据库中获取一些图像和文本 在我编写的JavaScript文件中 $(document).ready(function(){ //When Document is Ready, Show the Main Page $("#showifjavaenabled").fadeIn(1000); }); 所以在开始时,DIV showifjavaenabled是隐藏的,但是我注意到即使它在1秒后出现,也不是所有的java都被执

jsp
index.jsp
包含java代码,可以从数据库中获取一些图像和文本

在我编写的JavaScript文件中

$(document).ready(function(){
    //When Document is Ready, Show the Main Page
    $("#showifjavaenabled").fadeIn(1000);

    });

所以在开始时,
DIV showifjavaenabled
是隐藏的,但是我注意到即使它在1秒后出现,也不是所有的java都被执行,因为它们实际上很多,它们需要加载的时间不多,只需要一两秒钟,但它看起来仍然很糟糕,我怎么能
.show()或.fadeIn()
只有在执行完所有java代码后才显示此页面?

这是不将java代码放入JSP的原因之一

如果您在做服务器端业务,那么应该在服务器端完成,然后将请求转发给JSP,并将所有数据都加载

或者您可以使用AJAX调用来执行Java前端操作,使用一种平铺(页面已加载,使用AJAX加载的小框在完成之前仍会运行进度条)

尽可能避免使用scriptlet(
),并分离概念以获得更好的结果


编辑: 您应该尝试从Struts2这样的框架开始(而不是Struts1,后者更难、功能更弱)

这并不难,而且有很好的文档记录,您花在学习“hello world”和安装应用程序上的时间将立即在功能和易用性方面恢复,您可以在未来的应用程序中使用它

将一个巨大的逗号分隔字符串从服务器发送到客户机,然后将其取消标记化—这不是面向对象编程

OOP将是您需要处理的每个概念对象的一个对象,通过操作向JSP公开,并使用EL或OGNL标记在JSP中访问

我知道这一步似乎很大,但值得一试

或者,您可以继续使用您的反模式、过时的技术,尝试破解此问题,也许今天您将终止此软件,但明天您将遇到相同的问题


我的2美分(如前所述,我几年前就处在你的处境中了…

很抱歉我不理解这个问题,正如@Andrea所说,JSP代码应该是服务器端的,以便
$(document).ready()
将在正确的时间被调用。问题是他从JSP查询数据库,然后从客户端查询数据库,而不使用EJB。我也是在十年前这样做的,在发现Struts和EJB之前,我记得这种问题。这是一种反模式,不要将业务放在前端,为了安全起见,不要将其放在客户端si中当我要使用AJAX调用将一些信息放入动态页面时,我遇到了一个问题,因为我需要.append()很多东西,AJAX调用不会一直给我带来相同数量的信息,我知道这都是关于一种方法的,我也面临scriplets方法的问题,当我使用$.get时,我并不是这方面的专家,它会从Servlet返回一个名为responseText的字符串,所以只有一个字符串包含很多内容由逗号分隔的信息,然后我必须在JavaScript中分隔它们