Asked Jul 15th, 2019 1:32 p.m. 218 1 1
  • 218 1 1
0

Server hay Javascript?

Share
  • 218 1 1

Mình đang có 2 cách để xử lý 1 vấn đề

  • Cách 1 là đưa dữ liệu về server rồi làm 1 cái query, qua controller rồi model các kiểu để nhận dc giá trị ở view
  • Cách 2 là sử dụng Javascript để giải quyết vấn đề

2 cách đều ok hết thì mình nên ưu tiên chọn làm theo cách nào?

Một câu hỏi nữa là mình làm dropdown list, có 2 dropdown list, chọn value ở dropdown list 1 xong thì sẽ đổ dữ liệu vào dropdown list thứ 2. Mỗi dropdown list mình đều làm 1 câu lệnh query SQL rồi đổ vào Json trong controller và sau đó gọi ajax khi chọn value trong dropdown list 1.

Mình vừa mới nghiên cứu MVC thôi nên ko biết nhiều, ko biết bình thường làm dropdown list các bạn làm thế nào?

Jul 15th, 2019 4:22 p.m.

Bạn có nêu rõ vấn đề được không?

0
| Reply
Share
Jul 16th, 2019 12:49 a.m.

@quankm1097 : tức là mình đang có 1 vấn đề có thể xử lý bằng 2 cách, cách 1 là gửi thông tin về server rồi làm 1 câu query SQL, cách 2 là xử lý bằng Javascript, vậy mình nên ưu tiên xử lý bằng cách nào?

0
| Reply
Share
Jul 16th, 2019 1:00 a.m.

@VuHue Mình vẫn chưa hiểu vấn đề bạn cần xử lý kiểu gì. Bạn dùng javascript thì vẫn phải gửi request lên server và thực hiện câu SQL sau đó nhận lại dữ liệu và hiển thị ra front-end.

0
| Reply
Share
Jul 16th, 2019 1:02 a.m.

@quankm1097 : ko, cách thứ 2 mình chỉ dùng javascript, ko cần request lên server

0
| Reply
Share
Jul 16th, 2019 1:29 a.m.

@VuHue Mình nghĩ bạn đang làm là request một form xong add dữ liệu vào một table hay một thứ gì đó tương tự đúng không nhỉ 😄.

0
| Reply
Share
Jul 16th, 2019 1:43 a.m.

@quankm1097 ko, mình add dữ liệu vào rồi, là 1 danh sách thông tin mình để trong table, giờ mình cần là khi click 1 cái, thì table sẽ chỉ hiện 1 dòng thông tin thôi, 1 là select trong database cái mã mình truyền khi click vào, 2 là display none hết mấy cái dòng còn lại, chỉ hiển thị mỗi cái dòng click

0
| Reply
Share
Jul 16th, 2019 1:50 a.m.

@VuHue Nếu dữ liệu ít thì bạn có thể dùng cách là bấm nút dể hiện thị. Nhưng khi dữ liệu ngày một tăng, thì các thẻ HTML ngày một nhiều, bạn vào trang đấy thì trình duyệt sẽ phải xử lý rất nhiều gây ra hiện tượng giật khi nào trang web. Cho nên mình nghĩ bạn nên dùng cách 1 có vẻ hợp lý hơn 😄

0
| Reply
Share
Jul 16th, 2019 1:52 a.m.

@quankm1097 ok, mình biết rồi, cám ơn nhé. Thứ nữa là cái dropdown list, bình thường thì mọi người thường làm như nào? Có phải mỗi dropdown list là 1 request gửi về server ko?

0
| Reply
Share
Jul 16th, 2019 1:59 a.m.

@VuHue Nếu dropdown list bạn nhiều tầng, và dữ liệu nhiều thì nên là mỗi khi click gửi 1 request, có nếu không thì chả tội gì mà làm thế cả 😄

0
| Reply
Share
Jul 16th, 2019 2:33 a.m.

@quankm1097 mình có 2 dropdown list, chọn value từ dropdown list 1 thì sẽ gửi request về server, sau đó đổ dữ liệu vào dropdown list 2, dữ liệu thì cũng ko nhiều lắm, vậy mình cần làm sao để giảm bớt request?

0
| Reply
Share
Jul 16th, 2019 3:39 a.m.

@VuHue Thế trong lượt query đâu bạn lấy hết toàn bộ dropdown list 1 + dropdown list 2 rùi hiển thị ra thui.

0
| Reply
Share

1 ANSWERS


Answered Aug 1st, 2019 1:36 p.m.
0

Góp ý là lần sau em nên đặt vấn đề, sau đó rồi mới nêu giải pháp em đang dùng , sau đó nữa là nêu khó khăn hay vấn đề mà em còn lăn tăn. để cho mọi người có thể dễ dàng support nhé 😄

Cái này a nghĩ là tuỳ vào từng bài toán mà ta sẽ chọn cách 1 hay cách 2. Cách 1: vì đc xử lý trên server nên tốc độ a nghĩ sẽ nhanh hơn nhiều so với jquery, cơ mà server sẽ hơi vất vả chút. Cách 2: thì nhận client ở phía client rồi dùng query xử lý. cách này có vẻ hợp lý cho vấn đề chọn dropdown 1 thì hiện dropdown 2 của em. Và gần đây có vẻ mọi người thường hay chọn cách thứ 2 này nữa.

Cách làm thông thường hay làm là sẽ đổ dữ liệu ra dropdown 1, sau đó bắt sự kiện onChange() của nó. Rồi get value, để call api (use ajax) để load data của dropdown 2 by value mà nó đã selected ở thằng dropdown 1. Rồi đổ vào dropdown 2 thui. E mới làm có thể nó hỏi rối, nhưng cứ từ từ nghĩ và làm là nó quen hết thôi. Cố lên 😄

Share
Viblo
Let's register a Viblo Account to get more interesting posts.