A-AA+then

เกี่ยวกับ การสร้าง object ใน js

1,214
พอดีไปเห็นการสร้าง grid ของ extjs ประมาณนี้

 var grid = new Ext.grid.GridPanel({
        store: store,
        columns: [
            {
                id       :'company',
                header   : 'Company',
                width    : 160,
                sortable : true,
                dataIndex: 'company'
            },
.....

ความจริง โค๊ดมันยาวนะครับผมตัดไป

เลยคิดว่า อยากทำ grid เองมั้ง เลยอยากถาม อ.ว่ามีคำแนะนำรึป่าวครับ แนวๆนี้

ขอบคุณครับ

3 ความคิดเห็น

555+++

ไม่ค่อยเข้าใจคำถามเท่าไร หมายความว่า อยากจะใช้ grid ของ extjs หรือ อยากจะออกแบบกริดใช้เอง ?

ถ้าแค่ใช้ ผมไม่มีตัวอย่างละครับ ต้องไปศึกษาจาก document ของตัวกริดกันเองแหละ

แต่ถ้าคิดจะทำใช้เอง ก็มีทั้งยากและไม่ยากครับ

1.กริด มันก็คือตารางนี่แหละครับ เราสามารถใช้ CSS เพื่อทำให้ตารางมีความเหมือนหรือ สวยอย่างกริด ได้
2.กริด มันมีคุณสมบัติ หรือ วิธีใช้ในแบบของมัน ซึ่งจริงๆแล้ว เราก็ควรศึกษาจากที่มีอยู่แล้ว และดูว่าเขามีคำสั่งหรือ รูปแบบอย่างไร โดยปกติการวาดตาราง เราจะใช้ HTML วาดออกมา แต่ถ้าเราจะออกแบบเพื่อเป็น Class อาจต้องใช้ Javascript ในการสั่งงานกริด เช่น

grid.addRow()// คำสั่งพิ่มแถว
grid.assCols()// คำสั่งเพิ่มคอลัมน์

ซึ่งคำสั่งแบบนี้ไม่ได้ตายตัวว่าต้องมีอะไรบ้าง อาจออกแบบแค่ที่จำเป็นก็ได้ครับ (Methode และ Property ที่จำเป็น) ซึ่งหากเราได้เคยใช้กริดอื่นๆมาก่อน เราอาจต้องใช้ชื่อที่เป็นสากล เพื่อให้ผู้อื่น ใช้ได้ง่ายครับ
3.พืนฐานเรื่อง Class,Object และการใช้งาน Javasctipt ระดับสูง(สักหน่อย)
4.Frame Work ที่จะมาช่วยในการทำงาน เพื่อลดภาระที่ยากๆ ให้ง่ายขึ้น เช่นการใช้ฟังก์ชั่น เรียงลับดับตารางของ extjs (ซึ่งถ้าเราต้องมาออกแบบส่วนนี้ด้วยคงเป็นการเพิ่มภาระงาน)

วิธีที่อาจจะประหยัดเวลาได้มากกว่า ก็คือ ออกแบบตามความเข้าใจของเราครับ (เพราะไม่ต้องศึกษาทั้งหมด) เช่น การสร้างกริดโดยมีพื้นฐานมาจากตารางที่สร้างโดย HTML เสร็จแล้วใช้ Javascript ครอบตาราง เพื่อแปลงให้มันเป็น กริด ที่มีคุณสมบัติพื้ฯฐานเพียงพอต่อการทำงานของเราครับ ซึ่งพอเราชำนาญแล้ว หรือ ใช้ไปสักพัก ก็ค่อยๆปรับปรุงไปเรื่อยๆก็ได้ครับ 
1

อยากสร้าง grid เองครับ  เหตุผลเนื่องจาก คิดว่า ถ้าให้ server response เฉพาะข้อมูลอาจจะเป็น xml หรือ json แล้วให้ js เอามาสร้าง ตาราง ใส่ข้อมูล มันน่าจะทำลดภาระการทำงานข้อ server แทนที่จะให้ server query db วาดตารางแล้วส่งออกมาแสดงผล

ตามประสบการณ์ของ อ. คิดว่า มันน่าจะดีกว่ารึป่าวครับ

ขอบคุณครับ
2

ในแง่ของ db คงไม่มีอะไรแตกต่างหรอกมั้งครับ เพราะถึงไง เราก็คงต้อง query เอาข้อมูลดิบออกมาอยู่แล้ว และเรา้พียงแต่ใช้ HTML หรือ Javascript หรืออะไรก็ตามภายนอก เพื่อ ทำให้ข้อมูลแสดงผล เหมือนตาราง

ทำไมต้อง ตาราง ? คำตอบง่ายๆและตรงไปตรงมาก็คือ ตาราง ช่วยในกสรจัดการข้อมูลที่ยุ่งเหยิงให้มนุษย์ ดูได้เข้าใจได้ง่ายขึ้น

ดังนั้นเมื่อจุประสงค์ มีเพียงให้คนเข้าใจ การแสดงผลอาจไมใช่ตารางอย่างเดียวแล้วละครับ อาจเป็น กราฟ หรือ กริด หากมันดูเข้าใจได้ง่ายกว่า

ในความเป็นจริงแล้ว XML น่าจะง่ายสุด เพราะมันแสดงผลได้ทันทีโดยใช้ XLS ช่วย

ถ้าต้องการแค่ความสวยงาม CSS ก็พอมั้งครับ โดยการส่งตารางออกมาเลย การใช้ Javascript อาจช่วยเพิ่มลูกเล่นได้ก็จริง แต่ลองมองอีกด้านนึงคือ  เพื่อ คนทีปิด Javascript หรือ เพื่อ SEO จะเสียผลประโยชน์หรือเปล่า

ถ้าเป็นในแง่้ของการโหลดข้อมูลด้วย Ajax ลองพิจารณาดูให้ดีสิครับ ว่า ตาราง มันก็คือ XML นั่นเอง

<table>
 <tr>
   <td>
   </td>
 </tr>
</table>

ดังนั้นภาระของ Server คงไม่มีอะไรแตกต่าง แล้วจะเพิ่มภาระให้ client ไปทำไม ในเมื่อตารางก็แสดงผลได้ทันที

ทีนี้ถ้าจะพูดถึงคำถามว่า  อะไรจะดีกว่ากัน ผมบอกตรงๆ ว่า ให้พิจารณาเป็นกรณีๆ ไปนะครับ โดยอาจใช้เหตุผลที่ผมกล่าวถึงเป็นส่วนประกอบในการตัดสินใจ ว่าจะเลือกวิธีไหน เพราะว่าบางครั้ง สภาพแวดล้อมและความต้องการที่แตกต่างกัน ผลลัพท์อาจเปลี่ยนครับ 
3
^