2011-06-01 19 views
3

我對從另一個程序員繼承了一些HTML代碼,它使用包括形式的陳述工作:.INC文件中不包括可靠

~inc:filename.inc~ 

不過,我遇到的問題是,這包括聲明不能可靠地工作。大約90%的時間,包含文件中的所有信息都可以毫無問題地導入,但是當我刷新頁面時,所有內容都會丟失,而當我再次刷新時,所有信息都會丟失。我已經試圖改變包括報表更廣泛使用的形式,例如:

<!-- FILE="filename.inc"--> 
<!-- virtual="../filename.inc"--> 
<!-- virtual="/filename.inc"--> 

但這只是結果一致不被包括在所有的文件中。我一直在互聯網上的其他地方探索,但似乎無法找到任何解決方案,甚至無法使用'〜inc:'include語句。

值得注意的是,這個HTML是從低功率設備託管的固件中加載的,頁面上的某些項目會定期更新。是否有可能更新方法運行速度太快,硬件無法處理?

有沒有人有任何想法,我可以如何解決這個問題?

+0

這是什麼模板語言,你使用的是什麼HTTP服務器? – BoffinbraiN 2011-06-03 14:17:06

+0

我正在使用嵌入在使用其TCP/IP堆棧的MicroChip PIC上的Web服務器。我不太清楚'模板語言'是什麼意思 - 我寫的所有內容都是HTML或Javascript。 – CodeRedd 2011-06-03 16:43:38

+0

這是非常低級的。我想我們需要更多地瞭解您使用的確切硬件。你有文件嗎? – BoffinbraiN 2011-06-03 16:57:43

回答

0

OK,所以我下載的應用程序庫文件,並期待在TCPIP Stack Help.chm,發現HTTPIncFile功能:

void HTTPIncFile(ROM BYTE* cFile);

用戶不應該直接調用此函數,但應該改爲添加動態變量在他們的HTML代碼中包含〜inc:filename.ext〜的形式,以在該指定位置包含(例如)文件「filename.ext」。 MPFS2 Generator實用程序將處理其餘部分。

所以它看起來像你的原始語法是唯一記錄的。現在,雖然它說不直接調用函數,但由於您遇到了問題,因此可能值得這樣做,以查看是否得到相同的結果。

還要注意的是:

當curHTTP.callbackPos爲0時,文件被打開,作爲多字節可能被寫入。當前位置然後保存到curHTTP.callbackPos並關閉文件。在隨後的通話中,閱讀將從保存的位置開始並繼續。一旦達到輸入文件的末尾,curHTTP.callbackPos將被設置回0以指示完成。

這是純粹的推測,但如果您嘗試多次包含該文件或試圖同時包含一個或多個文件,則可能會遇到問題。如果沒有包含文件,則可能是因爲callbackPos未被重置。我也假設你是不是要修改模板文件,但是你確實說:

在網頁上的某些項目定期更新

如果您希望包括正在改變的文件,您可能遇到併發問題。您可能需要求助於鎖定或同步,以確保不會發生這種情況,或嘗試使用include方法等待旋轉,檢查偏移量,直至成功包含正數字節。