我正在使用ASP.Net提供一個頁面。我在頁面上使用jQuery動態添加的控件的添加/編輯/刪除功能,其中一些在數據庫中具有相關記錄。哪裏是放置這些id(主鍵)的最佳位置,屬性data- *,jQuery.data()?我應該擔心Id是否可見客戶端?將數據庫ID放在客戶端的最佳位置在哪裏?
回答
最佳做法是使用jQuery.data(),因爲這如下HTML5 standard for such information。
你可以自己的屬性添加到一個元素(例如my-attr="92"
),你可以使用一個隱藏的輸入字段設置爲ID(<input type="hidden" value="92" />
)的值,或者您也可以只使用id
屬性(例如id="db-92"
)。
我不認爲這真的很重要,你使用哪種方法,無論最適合。
我始終創建自己的屬性,並認爲這是一個很好的方式!除了當然,它不會驗證:) – 2011-05-31 15:32:51
更好地遵循標準並使用'data'屬性:http://ejohn.org/blog/html-5-data-attributes/(通過jQuery.data API)。 – 2011-05-31 15:37:08
@Martijn:但那些不支持HTML5的瀏覽器呢? – 2011-05-31 16:01:48
你應該決不將這個客戶端上。既然你將不可避免地通過你的服務器返回到最多的數據,你應該把某種形式的關鍵字(比如dsource ='db3'作爲一個屬性或者隱藏的領域..),然後做一些查找在服務器進程中。
爲什麼不準確?我不明白爲什麼在HTML中放入
我沒有看到所有權_的哪個_verification被設置爲OP的條件。即使這樣,這些信息也應該被分割。用戶(在瀏覽器上)不需要知道這些信息。 (即使它在加價模糊,恕我直言,它仍然是一個安全風險) – 2011-05-31 16:01:32
@Homer,我看到你已經編輯了我的原始答案以來的問題。鑑於您使用的是asp.net,我的回答尤其正確。您在服務器上使用_page方法,_callbacks或web services_的天氣不會通過將db id發送到客戶端來獲得,它應該可以在服務器上輕鬆訪問。如果你發現你必須發送一些東西給客戶,那麼把它作爲某種類型的關鍵,而不是實際的ID。 – 2011-05-31 17:44:13
首先做不使用直接數據庫ID。您將被直接綁定到一個表的主鍵的一個版本。相反,創建第二個欄,使用UUID是主鍵
佔位例如
tbl_person
person_id INT PRIMARY KEY
person_uuid VARCHAR(64)
name VARCHAR(128)
但是,爲了回答實際的問題,我建議你使用適當的元素的屬性,proabbly ID
<tr><td id="1234-5678">Paul </td></tr>
(編輯得到正確的代碼格式)
我總是使用jQuery的元數據庫,它本質上是$()。類(或任何其他)所述對象的屬性中包含的數據()功能。
找到了jQuery插件的元數據here:「這個插件能夠從類,隨機屬性,子元素和HTML5數據 - *屬性提取元數據的。」
所以你可以做這樣的東西:
<tr><td>Dave Jones</td><td><input class="delete_person {person_id: 90}" type="button" value="Delete this guy" /></tr>
然後使用jQuery:
$('.delete_person.').click(function() {
// delete person
$.post('/controller/delete_person', {person_id: $(this).metadata().person_id},
function() {
// the person was deleted
}
});
希望幫助!
爲什麼不使用jQuery native .data API? – 2011-05-31 16:26:47
加密客戶端記錄的ID以確保數據庫的安全性是一種很好的做法。通常一個隱藏的領域將做的伎倆。
通過這種方式,用戶僅通過查看源見加密ID。被調用的腳本然後使用用於加密的密鑰來檢索記錄標識符服務器端並根據需要操縱數據。
- 1. 在drupal中放置數據庫查詢的最佳位置在哪裏?
- 2. 位於客戶端機器上的html5本地數據庫在哪裏?
- 3. 優化:在哪裏處理數據?數據庫,服務器或客戶端?
- 4. 在TDD中創建測試數據的最佳位置在哪裏?
- 5. 在Django中,放置HTML格式數據的短片段的最佳位置在哪裏?
- 6. Node.js的最佳XMPP客戶端庫
- 7. Rails 3:放置自定義驗證器類的最佳位置在哪裏?
- 8. 在AWS中運行Python腳本的最佳位置在哪裏?
- 9. Android Studio:「安裝客戶端庫」在哪裏用於雲端點?
- 10. 客戶端證書存儲在哪裏?
- 11. 哪裏是指定maven倉庫,pom.xml或settings.xml的最佳位置?
- 12. 最佳python XMPP/Jabber客戶端庫?
- 13. 最佳java jabber客戶端庫
- 14. MVVM:把數據庫CRUD放在哪裏?
- 15. 在客戶端使用JSON數據的最佳實踐(javascript)
- 16. 在基於GWT的客戶端中管理客戶端數據庫的最佳方式是什麼?
- 17. 最佳實踐:在哪裏放置所需的文件
- 18. Rails - 在哪裏放置數據文件?
- 19. Workflow Foundation:我在哪裏放置數據?
- 20. 什麼是從winform客戶端進行數據庫設置的最佳實踐
- 21. 在JMeter中,哪裏是定義變量的最佳位置?
- 22. MVVM中檢查Internet連接的最佳位置在哪裏?
- 23. 這個功能的最佳位置在哪裏? C++
- 24. 在Rails中將方法添加到Integer類的最佳位置在哪裏?
- 25. 在哪裏放置前端JavaScript文件?
- 26. Slik SVN客戶端的Subversion全局配置文件在哪裏?
- 27. Android的位置感知客戶端庫
- 28. Entity Framework 6.1在哪裏放置我的數據庫?
- 29. rails最佳實踐在哪裏放置不顯眼javascript
- 30. 哪裏是放置不需要選擇的DJango Admin操作的最佳位置?
這是什麼平臺? php,asp.net等? – 2011-05-31 15:29:15
我使用ASP.Net和jQuery – Homer 2011-05-31 16:18:48