Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.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
Javascript 在页面内容中不使用iFrame的充分理由_Javascript_Html_Iframe - Fatal编程技术网

Javascript 在页面内容中不使用iFrame的充分理由

Javascript 在页面内容中不使用iFrame的充分理由,javascript,html,iframe,Javascript,Html,Iframe,好的,我正在寻找一些好的理由,不在页面内容中使用iFrame。我的朋友正在为我们的聊天室使用iFrame并加载html页面,而不是仅仅使用ajax加载所需的参数并长时间轮询请求。一旦我们有了参数,我们就用内容填充一些div 我最大的理由 为什么同时加载两个页面 需要更多的编码来注入iFrame 是否有人知道可能出现的任何其他可能的冲突和问题?我知道不久前iFrame被认为是不受欢迎的,然后它们又跳回到了网站上 ps我不确定这是否应该进入SO或MSO,如果需要,我可以移动它iFrame为页面上

好的,我正在寻找一些好的理由,不在页面内容中使用iFrame。我的朋友正在为我们的聊天室使用iFrame并加载html页面,而不是仅仅使用
ajax
加载所需的参数并长时间轮询请求。一旦我们有了参数,我们就用内容填充一些div


我最大的理由

  • 为什么同时加载两个页面

  • 需要更多的编码来注入iFrame

  • 是否有人知道可能出现的任何其他可能的冲突和问题?我知道不久前iFrame被认为是不受欢迎的,然后它们又跳回到了网站上



    ps我不确定这是否应该进入SO或MSO,如果需要,我可以移动它

    iFrame为页面上下文增加了灵活性,因为它们是将内容分离到多个页面上的简单可靠的方法。将内部页面“沙箱化”到iframe中也很有用,这样较差/缺失的标记将不会影响主页

    缺点是,如果引入多层滚动(一层用于浏览器,一层用于iframe),用户会感到沮丧。

    来源:

    因此,似乎我从事的每一项工作都会涉及同一个话题。有人会在某个时候说,“只需使用iFrame即可”。然后,我需要沿着老路走下去,看看为什么这不是一个好主意

    嗯,这篇文章对我来说有点实用。我希望在一个地方写下iFrames不是万灵丹的所有原因,这样我可以在将来节省一些时间,只需将人们指向这个URL。因此,我可能会不时更新这篇文章,因为我完善了这些要点。如果你愿意,请随意使用这篇文章来达到同样的目的,并且请将我错过的任何建议或观点发布到我的twitter帐户(@rwbDev),如果我在本文中添加这一点,我一定会相信你

    现在,让我澄清一下。iFrame确实有一个有效的用途。事实上,我自己也多次使用iFrame,并取得了巨大成功。问题是,人们倾向于使用它们来绕过糟糕的体系结构,或者只是为了解决问题。根据我的经验,这通常只是用一个小问题来换取一个更大的问题,而且往往是一种不必要的权衡。我将在下面介绍这两点

    不利于搜索引擎优化。这是避免使用iFrame最常见的原因之一。一些搜索引擎可能对iFrame中引用的页面有困难。这对网站或页面的搜索排名有多大影响尚不完全清楚。然而,与我交谈过的大多数专家都同意,这肯定会产生一些影响。看看这个有趣的热带表单帖子。关于SEO工作原理的详细信息,以及像这样的设计决策的影响,我建议访问seomoz.org。这当然不是一个问题,如果搜索引擎优化不是一个关注你的页面或应用程序。例如,一个需要登录的应用程序(无论如何,搜索引擎都无法访问登录后的所有页面)。 *注(2013年6月6日增补):最近的测试表明,搜索引擎实际上可能会跟踪iFrame中的链接。这意味着iFrame对SEO的影响要比过去小得多。目前还不清楚这是否会产生影响,不同的搜索引擎在这方面的表现可能会有所不同

    链接/书签。除非引入额外的JavaScript,否则用户将无法直接获得指向iFrame中内容的链接。这包括有人可能给朋友发电子邮件的链接、书签或搜索引擎结果中出现的页面。假设您的用户转到您的页面,并且某些内容位于iFrame中。他们单击iFramed内容中的链接。此内容将按预期保留在iFrame中。现在,您的用户可以在iFrame中找到他们导航到的一些内容,并希望将其发送给朋友。但是,在他们的浏览器中复制URL将不起作用,这只会将朋友发送到初始页面,原始内容显示在iFrame中。有一些脚本可以解决这个问题。我自己实现过几次(在我没有选择的情况下)。然而,它们往往会带来一些自身的问题,并且往往存在跨浏览器兼容性问题。通常情况下,它是向下的权利马车太多。同样,根据您的站点或应用程序的需要,这可能不是一个问题,但对于大多数站点来说,这是一个大问题

    调试困难。这是人们经常忽略的问题。如果您有一个健壮的应用程序,页面上到处都是复杂的jQuery、Ajax和其他很酷的东西——iFrame会使调试问题变得更加困难。错误发生在外部页面还是框架内的页面?浏览器开发人员工具可以帮助您解决这一问题,但即使是这些工具,在您处理iFrame时也不能始终明确问题所在。当页面在iFrame中时,bug被复制的频率是如此之高,但当加载到iFrame之外时,bug却可以正常工作,这会让您感到惊讶。这对于任何站点都是一个问题。但特别是对于广泛使用iframe的站点。系统的运动部件越多,诊断问题就越困难

    没有真正的性能提升。偶尔我会发现有人想要使用iFrame,因为他们觉得它会提高网站的性能。他们通常有这种感觉,因为这样可以避免在站点分页时重新加载站点的页眉/页脚/菜单。事实往往恰恰相反。事实上,根据我的经验,与修复应用程序的体系结构相比,它从未带来性能提升。首先,考虑浏览器将缓存图像、CSS和JS文件。因此,无论如何,这些不会随每个页面一起重新加载。但是