IFrame布局——失败选择

关于技术分歧,我从来不想陷入孰是孰非的口水战,因此对于iframe和div,一直都抱着各有优缺点的态度去旁观,自认为客观而公正。最近的项目很赶,由于ext3.x风格修改较为麻烦,因此计划尽量少用ext作为外观设计,只使用其逻辑功能。美工同志设计了iframe架构我边直接拿来用,认为凡事都可以适应。无奈多个多个frame的存在导致脚本代码的重复加载,并且该问题难以彻底解决。网上有一些解决方案,主要是两类:

  1. 分解js代码。如果是自由代码,这也许可以成为解决方案,但割裂整体性的结局未必会让人觉得使用起来可以驾轻就熟。
  2. 父页加载js,子页通通使用父页的js代码。这原本是不错的方案,但是无奈dom操作与子页元素密切相关。使用parent或者window.top来获取父页的js功能不仅代码累赘而且dom逻辑极易混乱。

许多努力和时间已经花费在当前的结构上了,修修补补也许还是可以继续完成工作,割舍真的很难。但是考虑到这样的问题延伸到以后都会十分痛苦,毅然决定推倒iframe方案,改用ext的布局与autoLoad加载多页的模式,改起来也算是得心应手,顺利的多。于是开始思考,为何在架构之初隐约感觉到了js重复加载的问题有可能存在,为何没有先下手尝试解决这个问题,这样可以早点发现难处到底有多难。

正确的做事顺序还是应当坚定地坚持,刚开始多花费了一些时间,也许就会少走一点弯路。正如华莱士·史蒂文斯所说:选择决定了结果。

在一件事情的发展过程中我做出了许多选择,这些选择的成败不在于选项是否正确,而在于是否选择让让它变成那样。有时候我们选择一个东西正是因为清楚它的优缺点,但它确实刚好合适。如果没有搞清楚这些,即便最优秀的选项,也可能是一种错误。