這是一個比技術更多的設計問題,但它讓我完全陷入困境。Jquery XHR導致dom更改持續通過刷新等
所以,我有一個網頁(通過谷歌應用程序引擎託管),列出了一些單獨的形式(每個是一個問題/謎題)。一個謎題有多個文本框可以填寫,還有一個提交按鈕。點擊提交後,服務器(運行python)發出ajax請求,檢查給出的答案是否正確。作爲迴應,通過在相關文本框中添加適當的刻度和十字來更新頁面,以及覆蓋整個問題的中等不透明覆蓋圖(以使整個事件呈現「變灰」效果)。
頁面刷新時,這些修改顯然會消失。但是,ajax請求會將答案信息保存到數據庫中。問題本身是通過使用Jinja2渲染頁面而創建的。
因此,所有的相關數據都會保存下來,以便下一次用戶返回頁面時,他過去回答的問題仍然灰顯,他的答案和剔/十字仍然存在。但是,我無法弄清楚做這件事的最好方法是什麼。我是否使用jinja2循環中的if語句對完成的問題進行硬編碼修改(例如:對於每個正在創建的問題,如果它已經被回答然後以不同的方式呈現)。或者,最好是讓頁面正常加載,然後爲頁面上的每個問題/表單執行加載XHR?
真的,我想要做的是,每個表單都在Jinja2中呈現,執行xhr以查看它是否在db中有答案,並且如果相應採取行動。但是將jinja2與ajax混合看起來相當麻煩,當然還有更好的方法可以解決這個問題嗎?
對不起,長期以來令人費解的問題,希望至少可以理解。
謝謝 - 這無疑給了我一點清晰。做到這一點jinja2絕對是要走的路,你是對的 - 宏觀聽起來不錯。到目前爲止,我只是有一個{%for%}循環將相關變量反覆生成一個表單,這就是爲什麼它試圖修改它時感覺如此笨拙。 – Cerzi