Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 面板具有虚假可视性与加载远程内容_Jquery_Asp.net_Ajax_Panel - Fatal编程技术网

Jquery 面板具有虚假可视性与加载远程内容

Jquery 面板具有虚假可视性与加载远程内容,jquery,asp.net,ajax,panel,Jquery,Asp.net,Ajax,Panel,如果我有多个内容,将在一些选择和单击事件后显示。例如,如果选择项目1,则仅显示内容1;如果选择项目3,则仅显示内容3 哪一个更好(关于页面加载时间): 1) 将每个内容放在单独的面板中(可见性=false)。如果选中该选项,则可见性设置为true 2) 将每个内容放在一个远程html页面中,如果选中,则通过jQueryAjax方法加载它 谢谢。选项1会导致初始页面加载变慢,但此后不会有更多请求 选项2会导致更快的初始页面加载,但在更改面板时也会导致连续页面加载 实际上还有第三个选项,您最初只加载

如果我有多个内容,将在一些选择和单击事件后显示。例如,如果选择项目1,则仅显示内容1;如果选择项目3,则仅显示内容3

哪一个更好(关于页面加载时间):

1) 将每个内容放在单独的面板中(可见性=false)。如果选中该选项,则可见性设置为true

2) 将每个内容放在一个远程html页面中,如果选中,则通过jQueryAjax方法加载它


谢谢。

选项1会导致初始页面加载变慢,但此后不会有更多请求

选项2会导致更快的初始页面加载,但在更改面板时也会导致连续页面加载


实际上还有第三个选项,您最初只加载面板1,然后在后台用AJAX加载其他面板。

通过AJAX方法加载是可伸缩的,您不想隐藏100多个项目,这会使页面速度变慢。
但是,如果只有几个项目,您可以选择第一个选项,因为它不会给服务器带来太多负载。

您的条款需要澄清

  • 您正在使asp.net控件不可见,而不是将其css属性设置为不可见。如果是这样的话,那么将数据存储在哪里真的无关紧要。您仍然需要进行回发(全部或部分)以获取数据,因为您只是渲染最小值。(没有包含信息的隐藏面板)

  • 当你说“远程”html页面时,你的意思是你正在同一台服务器上的不同文件中存储内容,还是说内容在远程服务器上?这是唯一会影响加载时间的因素。如果它位于远程服务器上,则需要更长的时间。如果它位于另一个文件中,则与将该信息放在同一个文件中没有太大区别


对于选项1,如果只加载一个面板(据我所知,visible=false意味着它不会加载),为什么页面加载会变慢。为什么不加载不可见的内容?我的意思是asp控件属性visible=false。当你查看页面源代码时,面板will visible=false没有被加载。啊,好吧,我想你说的是CSS属性。但是,我不知道如何在客户端设置ASP属性。但话说回来,我不知道ASP。我有很多东西。请看我对Ewout的回复。那么选择2更好。是返回HTML还是在页面上有一个模板并返回JSON将是另一个问题。如果有意义的话,你可以缓存json。那么,如果我指的是可见的asp控件属性,情况会有所不同吗?是的,除了mvc变体之外,从未尝试过asp.net。不知道它是干什么的。对于选项1:回发不是问题所在。我的意思是将大量面板的可见性设置为false(asp控件属性)会影响页面加载时间。或者不(因为面板visible=false意味着它不会被加载)这是真的吗?对于选项2:我的意思是相同的服务器不同的文件。我相信这是有区别的,因为根据选择,一次只能加载一个文件(html内容)。这就是我的观点。啊,这是有道理的。我一直认为加载时间就是渲染时间。渲染时间在任何方法中都是相同的,因为您只渲染可见项,但如果您有选择地加载,则加载时间将缩短。但是,如果是在同一台服务器上,您有选择地进行加载,则差别很小。一个简单的解决方案是让页面运行它的逻辑,然后在页面的prerender状态下,只加载可见元素的内容。这样,您就可以使用updatepanel而不是jquery路由。