我有一個關於使用jQuery/JavaScript/Ajax的最佳實踐的問題。讓我說我有一些任務,每個任務都有一個日曆。用戶可以點擊任務日曆中的某一天,並通過AJAX在特定日期預訂任務。我有存儲日期和任務的ID在某處,我用真離奇的ID爲如:jQuery和AJAX調用的最佳實踐
<span class="day_field" id="date_13-02-2013_task_4">13.02.2013</span>
然後我就附加一個監聽器是這樣的:
$('.day_field').on('click',function(){
var date = $(this).id.split('_')[1];
var task_id = $(this).id.split('_')[3];
//place for some validation
$.post('book_task.php',{task_id: task_id, date: date},function(data){
//something cool with the result
});
});
我的問題是:這是如何做到這一點的正確方法?我不太確定,因爲ID可能很長+它包含數據庫中的ID,根本不可能保存。
謝謝! T.
+1注意即使它被標記爲html5功能,它將適用於舊的瀏覽器就好了。 – Mahn 2013-02-26 22:46:46
這看起來很完美。我必須在我工作的公司首先嚐試它,因爲有些用戶只使用IE8,我必須確保它能正常工作。請告訴我:可以在那裏顯示任務的ID,並且每個人都可以在代碼中看到它?我確信每個黑客都會發現這個數字的含義,問題是如果他能用它來做一些壞事。謝謝! – user1377911 2013-02-26 23:09:02
舊版本的瀏覽器只將這些視爲自定義屬性,他們只是忽略它們。 HTML5所做的一切都是以'data-'開頭到應用程序的保留名稱,因此您可以確定它們永遠不會與標準屬性發生衝突。我不確定對黑客的擔憂是什麼 - 日期屬性對應於日曆日期,但沒有什麼祕密。 – Barmar 2013-02-27 15:36:11