Ajax 板


LINE

※ 引述《danny0838 (道可道非常道)》之铭言: : 在下想做的是一套简单的电子书系统,大概有几个要求: : 1. 使用者只需要 IE 或 Fx 等网页浏览器就能执行,不需安装额外软体。 : 2. 承上,所以希望整套网页系统只用到 JS, CSS, HTML, XML 之类的, : 目前没用过 JQuery,如果有需求会尝试看看。 : 3. 整套系统可以全套在本机电脑上执行,也可以放在伺服器上,供使用者连线使用。 我想请教一下这个需求的用意是? 如果你要让使用者在自己的电脑上使用,那麽以 HTML 和 Javascipt 为 基础的 HTML Application,可以很简单的达成你的要求。 如果你要放在伺服器上,单纯的 HTML 加 Javascript 顶多让使用者可以浏览而已, 如果要能编辑,甚至是你的资料档不想让使用者(透过输入网址的方式)直接取得, 则必须搭配 php 等伺服器端的程式才能达成。 不管怎麽样,硬要写在一起,只是徒增维护和撰写的复杂度而已。 不过如果你只是想做单纯的浏览,不需要编删的动作,那倒是勉强可以写在一起。 只是取得资料档列表的方式,伺服器端跟本机端要分开处理,其他部分倒可一起套用。 : 4. 架构大致分为 : (1) 网页程式系统(JS, HTML, XML) : (2) 资料档(很多,一个档就是一本电子书) : 5. 流程大致为: : 开启程式 : ↓ :   呈现操作介面和资料档列表 : ↓ : 使用者选取操作方式,以及资料档  ←   : ↓ ↑ : 程式载入必要的资料档,分析并呈现结果 → : 问题大概有几个: : 1. 本程式一开始是不会读入所有资料档的。 : 程式开启时,要呈现出一个列表,列出所有资料档,让使用者去选择。 : 就在下所知,如果要读取伺服器的「某资料夹下的所有档案」,必须使用 AJAX, 在本机是可以取得自己电脑的档案结构啦。 至於单纯使用 AJAX 就可以读取伺服器的档案结构... 如果你这麽认为的话,可能你的观念还要再加强一下喔。 : 但 AJAX 不能纯粹在本机运作,因此不宜; 在本机的话,HTML Application 有更直接的方法可以取得档案列表。 : 而如果要读取本机「某资料夹下的所有档案」,必须使用 ActiveX, 我想简单提一下,如果 client 要动用 server 的资源,除非该资源是公开的、 透过网址就可以直接取得的,否则单靠 AJAX / Javascript 办不到, 同时要搭配如 php 之类的程式语言才行。 而 server 要动用 client 的资源,则是靠着 JAVA 或是 ActiveX 之类的来达成。 所以看到这边我开始有点疑惑,你的要求是程式在本机跟伺服器都能执行, 然後资料档全部都是放在使用者的电脑上吗? : 但 ActiveX 不能在纯粹在伺服器运作,因此也不宜。 ActiveX 本来就不是给伺服器用的。 : (另外,ActiveX 似乎只有 IE 支援) 没错,要跨平台、跨浏览器的话,请考虑用 JAVA。 : 不知以上认知是否错误? : 因此,除了资料档以外,在下是否必须另外制作一个资料档的路径列表? 简单讲是这样没错... : 2. 承上,在上述限制下,有什麽方法可以根据使用者的操作, : 动态载入使用者想开启的资料档? 从传统的单纯超连结,到新的 AJAX 技术,都可以达到你的要求吧。 : 目前在下的做法是建立一个隐藏的 iframe 去读资料档, : 但 iframe 的载入似乎需要时间, : 无法在载入的程式码後面立刻抓取框架内容,否则会出错。 这边我不是很了解为什麽你会选择这样做? 如果你是以 AJAX 做的话,步骤大概像这样: 使用者触发读取某一个资料档的事件 -> 透过 AJAX 技术取得该资料档的内容 -> 根据某些规则(如 BBCode 转 HTML)产生要输出的 HTML 原始码 -> 将这个结果放到某个 division 里面,这样就完成了 按照这样来讲,根本不需要用到 iframe,更不用去等待、确认读取完成、再 取得该 frame 的内容(更何况,你打算怎麽取得整个框架的内容)。 : 另外,在下希望资料档格式尽量简单,让不懂网页语法的使用者也能自由编辑, : 所以最好可以是 txt 或 xml... 最简单当然是 txt,使用者程度够的话,建议以 html 来做就可以了, xml 我是觉得不很必要,除非你打算顺便纪录诸如文章日期等等的额外资讯。 : 在下想问的是: : 如何让主程式在 iframe 载入完成时,知道 iframe 已载入完全, : 然後分析并呈现其结果? : 或者,有比 iframe 更好的作法? : 3. 承上,因为同一个资料档可能被重复开启,想请问以下何种做法最有效率最省资源: : 1) iframe 载入後就保留,如果日後用到同一个资料档, : 就直接读取对应 iframe 的内容。 : 2) iframe 载入後,把内容存到主程式下的某个变数中,并关闭 iframe, :    如果日後用到同一个资料档,就直接读取对应的变数。 : 3) iframe 载入且读完後就关闭,如果日後用到同一个资料档,就重新载入一次。 : 4) 有比以上三者更好的方法? 我想就只需要一个 division,使用者开启一次则读取一次就好。 实在不需要储存到某个变数,或是制造多个 division / iframe 存放。 我觉得你好像把所谓的「日後」想得太远了,事实上不管如何, 使用者一关掉浏览器,你做的这些「快取」通通都会消失归零, 你可以想想看,要使用者留着一个浏览视窗不要关闭,可以维持多久呢? 而为了做这个 cache,所造成的网页结构复杂度、使用者记忆体耗用量、 使用者操作的顺畅程度、使用感受等等,再加上撰写相关机制以及日後 维护所花费的成本,我个人是觉得这麽做是弊大於利。 : 4. 在下想制作类似 phpBB 的 BBCode 或维基语法的自订标签,再用程式分析呈现, : 以供定义和规范化电子书的格式, : 并且可依实际需要配合样式表做出多种变化、多种分析方式。 要做到最大的变化性,我想 HTML 会比什麽 BBCode 或是维基语法还要优秀很多。 : 目前最大障碍是,HTML 标签只容许巢状,而不容许交叉。 : 假设在下的自订标签语法如下: : [h1]标题[/h1] : 正文正文正文[note]注解注解[/note]正文正文正文...... : 这段文字会被程式转换为: : <h1>标题</h1><br/><br/>正文正文正文<span class="note">注解注解</span> : 正文正文正文...... : (中间没有换行,是为了BBS显示才换行的) : 但如果有人写成: : [h1]标[note]题[/h1] : 正文正文正文注解注解[/note]正文正文正文...... : 转换後就会得到错误的结果...... : 在下希望程式能自动侦测这类的问题,并且自动修正为巢状标签: : <h1>标<span class="note">题</span></h1><br/><br/><span class="note"> : 正文正文正文注解注解</span>正文正文正文...... : 目前就卡在不知如何自动侦测标签的不当嵌套, : 以及侦测出来後自动复制必要的标签,请求各位大大协助。 关於这点,恕我不同意你的观点。 我想先请教的是,你要根据什麽来认定这个不当嵌套的内容,是要依照你 所定的规则来做修正?使用者真正想表达的效果,一定是你设想的这样吗? 其实浏览器也有自己的容错机制,而且肯定比您自己撰写的要来得完善,因此, 我比较倾向把这个问题交给浏览器解决。 所以您要做的只是将 BBCode(或是您最终决定采用的其他格式)按照正常的规则 解析成 HTML,至於这个结果是不是可接受,就交给浏览器来解释。 如果最後显示的结果可以接受那就还好,否则就是该使用者犯了连浏览器都 无法接受的错误,这样则直接要求该使用者改善。 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.165.34.174







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP