این کار رو من با اسپرینگ انجام دادم. به گفته دوستان آی پی و آیدی کاربر و آیدی مطلب رو در پایگاه داده ذخیره کنید. فرض کنید جدول بازدید شما به این صورت می باشد.
برای بازدید نیاز به کد Ajax ندارید کافی قبلش چک کنید و ببینید که آی پی کاربر و آیدی مطلب مورد نظر در جدول وجود دارد یا نه اگر نبود فیلد مربوط به بازدید رو یکی افزایش میدین و آی پی و آدی مطلب و کاربر رو در این جدول ذخیره می کنید در غیر این صورت لازم نیست کوئری ها گفته شده اجرا شوند.
برای امتیاز دادن به کد Axjax نیاز دارید. برای مثال کد مربوط به امتیاز مثبت رو در اینجا میارم که طبیعتا نمره منفی دادن نیز مشابه خواهد. برای مطالعه بیشتر درباره ی کتابخانه های استفاده شده برای ارتباط ajax و کنترلر در اسپرینگ به این آدرس مراجعه کنید. http://www.raistudies.com/spring/spring-mvc/ajax-form-validation-using-spring-mvc-and-jquery/
function up() {
var Id = $('#Id').val();
var dataString = "Id="+Id;
var up = parseInt($('#up').val());
$.ajax({
type: "POST",
dataType: 'json',
async: true,
url: "/up.htm",
data: dataString,
success: function(response){
// we have the response
if(response.status == "SUCCESS"){
up = up+1;
$('#up').val("+"+up);
$('#msg').show('slow');
setTimeout(function(){
$('#msg').hide('slow');
}, 2000);
}else{
$('#msg1').show('slow');
$('#msg').hide('slow');
setTimeout(function(){
$('#msg1').hide('slow');
}, 2000);
}
},
error: function(e){
alert('Error:'+e);
}
});
}
و کد مربوط به کنترلر به این صورت می باشد
@RequestMapping(value="/up.htm")
public @ResponseBody JsonResponse up(HttpServletRequest request,Model model){
JsonResponse res = new JsonResponse();
int Id = Integer.parseInt(request.getParameter("Id").toString());
if(voteService.checkVote(Id,request.getRemoteAddr())){// چک می کند که آیا تبه این مطلب توسط ایتن آی پی رای داده شده است یا نه
Vote vote = new Vote();
vote.seId(Id);
vote.setIp(request.getRemoteAddr(););// request.getRemoteAddr();برای دستیابی به آی پی کابر
service.up(Id);//افزایش امتیاز
voteService.insertIP(vote);// ذخیره آی پی و آیدی
res.setStatus("SUCCESS");
}
else
res.setStatus("FAIL");// پیامی ظاهر می شود که شما به این مطلب رای داده اید.
return res;
}
برای دیدن نمونه به این آدرس مراجعه کنید.