Mommy, where do new rows come from?

Mommy, where do new rows come from?

Hi, I'm building a web-app that has many places where I show an existing table that contain rows of editable fields, and need a mechanism for adding new rows to the table.  My question is more or less a "theory" question... what's the best way to create the new rows?  There are two options as I see it:

  1. server-side birth: At the time of html generation (in my case via PHP), a new blank row/record is created and hidden somewhere on the page.  This hidden/blank record is then cloned for each new row.
  2. javascript birth: At the time of clicking on "new record" an existing record (either the first one, or in the case that you can add-above/add-below, the active record) is cloned, and the data wiped away before display.

Either method works, but I'm curious what people think about which way is the "proper" way from a software design perspective.